サーバーで作業しており、クロス ドメイン スクリプティングを実行しようとしています。
http://software.dzhuvinov.com/cors-filter-installation.htmlを追加しようとし、Java ファイルを .../tomcat/lib/ (および .../tomcat/webapps/MYAPP) に配置しました。 /WEB-INF/lib/ が機能していなかったため)、web.xml を変更して、...
<servlet>
<description>Desciption</description>
<display-name>Displayname</display-name>
<servlet-name>myservlet</servlet-name>
<servlet-class>java.path</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/wsdl</url-pattern>
</servlet-mapping>
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<servlet-name>myservlet</servlet-name>
</filter-mapping>
そして、Web サーバーを再起動します。
Access-Control-Allow-Origin が機能しません。403 エラーが発生し続けます。
Web サイトの 3 つの手順を正しく実行していなかったに違いないと思います。それを機能させる方法はありますか?
ありがとう。
Edit1: この呼び出しの前に、url と soapMessage として自分の URL と SOAP メッセージを宣言します。どちらもsoapUIで正常に動作するため、どちらも適切に形成されていると確信しています。
呼び出しは次のとおりです。
$.ajax({
type: "POST",
url: url,
dataType: "xml",
contentType: "text/xml",
//crossDomain: true,
data: soapMessage,
//xhrFields: {
// withCredentials: true
//},
success: function(data){
var xml = data.xml;
console.log("Success!");
console.log(xml);
//[do something with the xml]
},
error: function(data){
var xml = data.xml;
console.log("Error!");
console.log(xml);
//[do something with the xml]
},
complete: function(data){
var xml = data.xml;
console.log("Complete!");
console.log(xml);
//[do something with the xml]
}
私は運が悪いので、さまざまな分野を試してきました。それが注目に値するかどうかはわかりませんが、dataType を含めない場合、応答ヘッダーは、表示したい Access-Control-Allow-Origin を示し、415 エラー (サポートされていないメディア タイプ) を返します。
リクエストヘッダーの例:
OPTIONS /servlet/wsdl?wsdl HTTP/1.1
Host: otherserver:8080
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: thiswebpage.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1
Access-Control-Request-Headers: origin, content-type, accept
Accept: */*
Referer: thiswebpage.com/thisForm.cfm
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
応答ヘッダーの例:
HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Content-Type: text/plain
Content-Length: 86
Date: Tue, 28 Aug 2012 13:12:04 GMT
他にもフィルターがあります (web.xml ファイルは巨大です) が、影響を与える可能性があるのはこれらだけです。ファイルを作成した会社に行く必要があります。上司がこれらに触れさせてくれない可能性が高いからです (私はインターンです)。
<filter>
<filter-name>agentSecurityModeFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>agentSecurityModeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
彼らがここで何をしているのかわかりません...同じフィルターを同じURLパターンに異なる名前で2回追加しているようです。
もう一度、ありがとう!