2014-06-12 9 views
6

का उपयोग कर रहा JAX-आरएस (जर्सी 2.0) का उपयोग कर एक छोटा सा REST API को क्रियान्वित किया है और मैं एपीआई कॉल करने के लिए, प्राप्त और पोस्ट ठीक से काम AJAX का उपयोग कर रहा DELETE लेकिन जब मैं मिल403 स्थिति (निषिद्ध) जब डाल और AJAX

संसाधन लोड करने में असफल: किसी भी PUT फोन या तरीकों हटाने के लिए, सभी मैं निम्न त्रुटि संदेश है है एक का एक उदाहरण सर्वर 403 (निषिद्ध)

यहाँ की स्थिति के साथ प्रतिक्रिया व्यक्त की DELETE जावा में विधि:

@Path("/deleteSomething") 
    @DELETE 
    @Consumes("application/json") 
    public void delete(String json) throws ParseException { 
     JSONParser parser = new JSONParser(); 
     Object obj = parser.parse(json); 
     JSONObject object=(JSONObject)obj; 

     String id = (String) object.get("id"); 
     System.out.println("ID : " + id); 
     //DO SOMETHING HERE 
    } 

और यहाँ AJAX का उपयोग कर जावास्क्रिप्ट कॉल है:

function deleteSomethingAjax() { 
    $.ajax({ 
     url: API_URI + "/deleteSomething", //API_URI is the API's uri 
     contentType : 'application/json', 
     data: idToJSON(), // this function just returns a JSON obj {"id":"myID"} 
     type: 'DELETE', 
     success : function(data, textStatus, jqXHR) { 
      alert("Fine!"); 
     }, 

     error : function(jqXHR, data, textStatus, errorThrown) { 
      alert('WOOPS, something wrent wrong...'); 
     } 
    }); 
} 

किसी भी मदद की बहुत सराहना की जाएगी !! धन्यवाद!!

+1

इसके बजाय सवाल अपने समाधान शामिल करने के लिए संपादित करने के लिए, यह बेहतर होगा बस एक उत्तर पोस्ट (और "इसे स्वीकार") करने के लिए: यहाँ CORSFilter का हिस्सा है, अच्छी तरह से web.xml अंदर सेट है। –

+1

@PaulRichter सुझाव के लिए धन्यवाद, कि मैं सिर्फ क्या किया है है। – charliebrownie

+1

@AntP सलाह के लिए धन्यवाद! मैं सिर्फ नीचे समाधान पोस्ट और इसे स्वीकार कर लिया। – charliebrownie

उत्तर

6

समस्या को कॉरफ़िल्टर सेट-अप के साथ करना पड़ा, मैं इसे वेब.xml फ़ाइल में गलत स्थापित कर रहा था।

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
    <init-param> 
     <param-name>cors.allowed.origins</param-name> 
     <param-value>*</param-value> 
    </init-param> 
    <init-param> 
     <param-name>cors.allowed.methods</param-name> 
     <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
संबंधित मुद्दे