我想要做什麼:使用jQuery與jQuery Soap插件(通過Remy Blom)從JavaScript調用跨域SOAP服務。 (也就是我所說的$.soap();
在JavaScript)預檢選項請求到SOAP服務不起作用
我所做:CORS設置在服務器端(CXF)的工作(使用org.eclipse.jetty.servlets.CrossOriginFilter
),所以中存在下列答案:
Access-Control-Allow-Head... X-Requested-With,Content-Type,Accept,Origin
Access-Control-Allow-Meth... GET,POST,OPTIONS,HEAD
Access-Control-Allow-Orig... http://localhost:8082
Content-Type application/soap+xml;charset=UTF-8
缺少什麼:在POST
請求SOAP調用之前,Firefox和Chrome發送預檢OPTIONS
請求。顯然,SOAP不允許使用動詞OPTIONS
。
它不會了SoapUI(5.0)以及CXF(2.7.7)的工作。它在org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor
線130ff在評論甚至說:
/*
* Reject OPTIONS, and any other noise that is not allowed in SOAP.
*/
所以,我的問題是:如何修改我的SOAP servcie實現(使用CXF),使得OPTIONS
請求成功返回?
如果我理解正確的;那麼,你只需要用@OPTIONS註釋你的WebService類。請參閱:http://cxf.apache.org/docs/jax-rs-cors.html – Rafa 2015-02-18 05:17:21
@YoriKusanagi這裏描述瞭如何爲REST服務而不是SOAP服務解決這個問題。 – 2015-04-03 09:56:21