2012-09-12 14 views
23

मैं अपने बिल्ला कंटेनर में एक डिफ़ॉल्ट HTTP हेडर सेट करना चाहते हैं में -पहुंच-नियंत्रण-अनुमति दें-मूल: * बिल्ला

पहुंच-नियंत्रण-अनुमति दें-मूल: *

विभिन्न से स्टैकओवरलो और Google से अलग-अलग लिंक, अधिकांश ने resource पर ध्यान दिया है। This फिर से यह कहता है कि इसे कैसे करें। मैंने इसे दोहराया है, लेकिन अभी भी हेडर नहीं दिखाया गया है। यह मैं क्या किया है: 1) बिल्ला 2) web.xml

<filter> 
    <filter-name>CORS</filter-name> 
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> 
    <init-param> 
    <param-name>cors.allowOrigin</param-name> 
     <param-value>*</param-value> 
    </init-param> 
    <init-param> 
    <param-name>cors.supportedMethods</param-name> 
     <param-value>GET, POST, HEAD, PUT, DELETE</param-value> 
    </init-param> 
    <init-param> 
    <param-name>cors.supportedHeaders</param-name> 
     <param-value>Content-Type, Last-Modified</param-value> 
    </init-param> 
    <init-param> 
     <param-name>cors.exposedHeaders</param-name> 
     <param-value>Set-Cookie</param-value> 
    </init-param> 
    <init-param> 
     <param-name>cors.supportsCredentials</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 

<filter-mapping> 
    <filter-name>CORS</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

यह काम नहीं करता है और मैं मजबूर हूँ में इस पाठ सम्मिलित किया गया की/lib फ़ोल्डर में कॉपी किया गया cors.jar फ़ाइल। मेरा टॉमकैट संस्करण -6.0.6 है। कृपया मदद करे।

उत्तर

11

मुद्दा उपस्थित हुआ में तो शामिल करके स्वीकार कर रहे हैं/अनुमति बनाने । मैं बस इसे tomcat lib में शामिल कर रहा था। web.xml में नीचे का उपयोग करते हुए अब काम करता है:

<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> 

<filter> 
    <filter-name>CORS</filter-name> 
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> 

    <init-param> 
     <param-name>cors.allowOrigin</param-name> 
     <param-value>*</param-value> 
    </init-param> 
    <init-param> 
     <param-name>cors.supportsCredentials</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>cors.supportedHeaders</param-name> 
     <param-value>accept, authorization, origin</param-value> 
    </init-param> 
    <init-param> 
     <param-name>cors.supportedMethods</param-name> 
     <param-value>GET, POST, HEAD, OPTIONS</param-value> 
    </init-param> 
</filter> 


<filter-mapping> 
    <filter-name>CORS</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

और अपनी परियोजना निर्भरता में नीचे:

<dependency> 
    <groupId>com.thetransactioncompany</groupId> 
    <artifactId>cors-filter</artifactId> 
    <version>1.3.2</version> 
</dependency> 
+2

मैं संबधी मुद्दे हैं और साथ ही। आप परियोजना निर्भरता में किस फाइल को डालते हैं? – Josh

+0

मेरी परियोजना ने कॉर्स-फ़िल्टर निर्भरता के बिना काम किया और अचानक काम करना बंद कर दिया। इसे जोड़ने के बाद यह फिर से काम करता है। – Kenci

+0

मेरी परियोजना एक मेवेन बिल्ड नहीं थी, तो क्या मुझे परियोजना निर्भरता जोड़ने की ज़रूरत है? मैंने जार और web.xml फ़ाइल को अद्यतन किया है, लेकिन यह काम नहीं किया। – Giri

2

कृपया अपना वेब.एक्सएमएल फिर से जांचें। आप कुछ मूर्खतापूर्ण गलती कर रहे हैं। चूंकि मेरा एप्लिकेशन एक ही init-param कॉन्फ़िगरेशन के साथ ठीक काम कर रहा है ...

यदि समस्या अभी भी बनी रहती है, तो कृपया web.xml पेस्ट करें।

10

बदलें इस:

<init-param> 
    <param-name>cors.supportedHeaders</param-name> 
    <param-value>Content-Type, Last-Modified</param-value> 
</init-param> 
इस

<init-param> 
    <param-name>cors.supportedHeaders</param-name> 
    <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> 
</init-param> 

करने के लिए

मैं यह करने के काम करने के लिए कुछ भी पाने के लिए था।

1

मैं आईपी पते (लैपटॉप वायरलेस डीएचसीपी) बदलने के बाद ब्राउज़र को पुनः आरंभ करना पड़ा है जो मेरा "क्रॉस-होस्ट" था, मैं अपने वेब ऐप में जिक्र कर रहा था, जिसने इस मुद्दे को हल किया।

इसके अलावा

सुनिश्चित करें कि सभी CORS हेडर आपके ब्राउज़र/मेजबान द्वारा जोड़ा जा रहा है cors.allowed.headers वजह से इस परियोजना के हिस्से के रूप jar फ़ाइल शामिल नहीं की

1

इस प्रयास करें।

1.Write कस्टम फ़िल्टर

package com.dtd.util; 

    import javax.servlet.*; 
    import javax.servlet.http.HttpServletResponse; 
    import java.io.IOException; 

    public class CORSFilter implements Filter { 

     @Override 
     public void init(FilterConfig filterConfig) throws ServletException { 

     } 

     @Override 
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 
      HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; 
      httpResponse.addHeader("Access-Control-Allow-Origin", "*"); 
      filterChain.doFilter(servletRequest, servletResponse); 
     } 

     @Override 
     public void destroy() { 

     } 
    } 

2.add web.xml को

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>com.dtd.util.CORSFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
संबंधित मुद्दे