2015-01-29 13 views
6

मैं $ CATALINA_BASE/conf/web.xml फ़ाइल में मूल कोर फ़िल्टर को लागू करने की कोशिश कर रहा हूं।सीओआरएस फ़िल्टर टॉमकैट 7 काम नहीं कर रहा

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

मैंने पुष्टि की है कि मैं निश्चित रूप से बिलाव के समर्थित संस्करण चल रहा हूँ:

Server version: Apache Tomcat/7.0.56 
Server built: Sep 26 2014 12:08:24 
Server number: 7.0.56.0 

यहाँ मेरी AJAX अनुरोध है: यहाँ मेरी फिल्टर है

function MethodOne() { 
$.ajax({ 
    type: "GET", 
    url: "http://localhost:8080/crossDomain", 
    crossDomain: true, 
    success: function(response) { 
     $('#result').html(response); 
    } 
}); 
} 

और मेरे अनुरोध/प्रतिक्रिया शीर्षलेख:

Remote Address:[::1]:8080 
Request URL:http://localhost:8080/crossDomain 
Request Method:GET 
Status Code:302 Found 
Request Headersview source 
Accept:*/* 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:en-US,en;q=0.8 
Connection:keep-alive 
Host:localhost:8080 
Origin:http://localhost:3000 
Referer:http://localhost:3000/ 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36 
Response Headersview source 
Date:Thu, 29 Jan 2015 15:19:00 GMT 
Location:http://localhost:8080/crossDomain/ 
Server:Apache-Coyote/1.1 
Transfer-Encoding:chunked 

किसी भी मदद की सराहना की जाएगी। मुझे एहसास है कि मैं उचित तरीके से अनुरोध नहीं भेज रहा हूं लेकिन वास्तव में कोई जानकारी नहीं है।

+0

मुझे एक ही समस्या है। –

+0

मुझे एक बहुत ही समस्या है लेकिन मेरा प्रीफलाइट विकल्प अनुरोध पर 403 के साथ विफल रहता है। – moliveira

उत्तर

0

मुझे एक ही समस्या थी। फ़िल्टर से दूर करना पड़ा।

request.getHeader("Origin"); 

प्रतिक्रिया शीर्षलेख में जोड़ा गया। इससे मेरे लिए समस्या हल हो गई।

एक और समाधान यह जांचना है कि यह एक प्रीफलाइट अनुरोध है या नहीं। फिर जोड़ने के लिए किया था:

Request.ok().build(); 

लेकिन मुझे लगता है कि सबसे अच्छा समाधान ब्राउज़र में वेब सुरक्षा को अक्षम करने था।

क्रोम के लिए मैं प्रयोग किया है:

--disable-web-security 
1

तो

की तरह अपने web.xml डिस्पैचर बारीकियों के साथ अन्य फिल्टर है

<dispatcher>REQUEST</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>FORWARD</dispatcher>

फिर CORS फ़िल्टर मेरे लिए में लात नहीं किया।

हालांकि फ़िल्टर-मैपिंग के बाद चाल चल रही थी।

<filter-mapping> <filter-name>CORS Filter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>FORWARD</dispatcher> </filter-mapping>

<dispatcher>FORWARD</dispatcher> जादू

आशा यह आपके दोस्त में मदद करता है था!

संबंधित मुद्दे