我正在使用服務器,我正在嘗試跨域腳本。Apache Tomcat和CORS
我試着添加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錯誤。
我想我一定沒有正確地遵循網站上的3個步驟。任何想法如何使其工作?
謝謝。編輯1:我聲明我的網址和我的肥皂消息之前,這個調用作爲url和soapMessage。我相信他們都是很好的形成,因爲他們在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模式。
再次,謝謝!
您是否可以包含樣本http請求和響應,以及您如何提出請求的代碼片段?你有沒有安裝其他過濾器? 403聽起來像是一個可能的身份驗證錯誤,這意味着請求可能會被其他一些過濾器拒絕。 – monsur
我已經做了一些編輯以包含您提出的問題。我即將閱讀http://static.springsource.org/spring/docs/1.2.x/api/org/springframework/web/filter/DelegatingFilterProxy.html上的其他過濾器,看看它是否可以問題。感謝您的評論。 – Sraaz
當然你不使用Spring 1.2?這真的很舊。 – Pidster