2017-03-21 20 views

答えて

3

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 
    

    (このライブラリはデフォルトで含まれています)

    +0

    この深みのあるありがとうございます。私はその機能をリクエストしました:https://github.com/BaseXdb/basex/issues/1441 – Seb3736

    +0

    答えを少し調整しました。そのため、BaseXがライブラリを出荷することを考慮しています。 –

    関連する問題