BaseX는 후드 아래에서 부두를 사용합니다. 당신의 $CLASSPATH
(BaseX 이미 선박에 jetty-servlets
단지를 추가 한 당신은 부두가 CORS 헤더를 보낼 수 있도록하기 위해 web.xml
파일을 수정할 수 있지만 하나
- 사용은 적어도 BaseX 8.6.3
jetty-servlets
라이브러리 또는
- 을 추가하는
jetty-servlet
, 이는 다른 클래스이며, BaseX에 포함 된 것과 일치하는 적절한 버전을 가져와야합니다.)
는 web.xml
파일에 다음과 같은 지시를 포함 :
<web-app>
<!-- add those before the closing web-app tag: -->
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
부두 와일드 카드 헤더 Access-Control-Allow-Origin: *
게시 지원하지 않는 것주의하십시오 : 기본 이미
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
동안 (넣어 즉, <filter/>
요소로), Jetty는 이것을 사용하여 정규식을 구성하고 항상 Origin:
요청 헤더 i의 값을 반환합니다 일치하지만, 그것은 또한 당신을 잘 제공해야합니다.
예 요청이 오히려 합리적인 요청해야 할 것은, 당신은 기본적으로 기본적으로 라이브러리, 그리고 어쩌면 가능 CORS를 포함하는 opening an issue 성공할 수 있습니다 보인다 감안할 때
$ curl -v -H "Origin: http://foo.example" http://admin:[email protected]:8984/rest
* Trying ::1...
* Connected to localhost (::1) port 8984 (#0)
* Server auth using Basic with user 'admin'
> GET /rest HTTP/1.1
> Host: localhost:8984
> Authorization: Basic YWRtaW46YWRtaW4=
> User-Agent: curl/7.50.1
> Accept: */*
> Origin: http://foo.example
>
< HTTP/1.1 200 OK
< Content-Type: application/xml; charset=UTF-8
< Content-Length: 152
< Server: Jetty(8.1.18.v20150929)
<
<rest:databases xmlns:rest="http://basex.org/rest" resources="1">
<rest:database resources="1" size="96234589">test</rest:database>
</rest:databases>
* Connection #0 to host localhost left intact
.
(이 라이브러리는 기본적으로 포함되어 있습니다.)
이 해답을 가져 주셔서 감사합니다. 이 기능을 요청했습니다 : https://github.com/BaseXdb/basex/issues/1441 – Seb3736
답변을 약간 수정 했으므로 이제 BaseX가 라이브러리를 제공한다는 점을 감안합니다. –