BaseXは、フードの下にJettyを使用します。あなたは、少なくともjetty-servlets
ライブラリを追加BaseX 8.6.3または
があなたの$CLASSPATH
(BaseXすでに船にjetty-servlets
jarファイルを追加する必要が突堤がCORSヘッダを送信するためにweb.xml
ファイルを変更しますが、どちらか
- 使用することができます
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がライブラリを出荷することを考慮しています。 –