के साथ विफल रहता है मेरे पास जर्सी बैकएंड एप्लिकेशन के साथ एंगुलरजेएस वेबप्लिकेशंस है।एंगुलरजेएस और जर्सी रीस्ट डिलीट ऑपरेशन 415 स्टेटस कोड
अब सब कुछ AngularJS से REST संसाधन तक पहुंचने के लिए ngResource का उपयोग करके ठीक काम कर रहा है। एकमात्र समस्या DELETE विकल्प के साथ है।
मैं अपने ngResource का उपयोग कर एक कोर्स हटाने के लिए निम्न कोड है: (जर्सी)
Course.deleteCourse = function(course) {
course.$remove({
courseId:course.id
});
return course;
};
बैकएंड में मैं निम्नलिखित कोड है: यदि मैं एक आइटम को हटाने का प्रयास
@DELETE
@Path("{id}")
public final void remove(@PathParam("id") final String id) {
System.out.println("DELETE ID = " + id);
}
निम्नलिखित यूआरएल को कोणीय से बुलाया जाता है:
DELETE http://localhost:8080/manager-api/courses/5
यह ठीक है (मेरे बाद)। अगर मैं इस यूआरएल को कर्ल से कॉल करता हूं, तो मुझे बैकएंड से ssystem.out को कंसोल पर पोस्ट किया जाता है।
क्लाइंट एप्लिकेशन में (AngularJS) मैं ब्राउज़र कंसोल पर निम्न अपवाद प्राप्त करें:
DELETE http://localhost:8080/manager-api/courses/5 415 (Unsupported Media Type)
किसी को भी एक विचार है कि समस्या क्या हो सकता है? पोस्ट + जीईटी ठीक काम कर रहे हैं।
मैं निम्नलिखित है उपभोग/एनोटेशन का उत्पादन:
@Consumes({ MediaType.APPLICATION_JSON })
@Produces ({MediaType.APPLICATION_JSON})
आपकी मदद के लिए अग्रिम धन्यवाद।
स्वागत करती है मार्क
संपादित करें:
मैं $ http साथ AngularJS से बाहर बाकी सेवाओं तक पहुँचने के रास्ते को बदलने के लिए कोशिश की है।
अब मेरी सेवा के रूप में नीचे दिखता है:
MyApp.factory("Course", ["$http", function ($http) {
var courseBaseUrl = "/api/courses/";
return {
show: function show(courseId) {
return $http.get(courseBaseUrl + courseId);
},
list: function list() {
return $http.get(courseBaseUrl, {});
},
remove: function remove(courseId) {
return $http.delete(courseBaseUrl + courseId, {});
},
save: function save(course) {
return $http.post(courseBaseUrl, course, {});
}
};
}]);
परिणाम अभी भी वही है। आवेदन, उदा, कॉल
DELETE http://localhost:8080/manager-api/courses/1
और अगर मैं कर्ल पर एक ही हटाएँ कॉल कहते हैं, सब कुछ ठीक काम करता है एक
DELETE http://localhost:8080/manager-api/courses/1 415 (Unsupported Media Type)
प्राप्त करता है।
आपकी मदद के लिए धन्यवाद मार्क
एक अन्य विकल्प लेने वाली MediaType.APPLICATION_XML अनुमति देने के लिए JAX-आरएस जर्सी पक्ष को बदलने के लिए है ... @ कंस्यूम्स ({MediaType.APPLICATION_JSON,, MediaType.APPLICATION_XML})। –
अच्छा बिंदु, – paullth
उत्तर देने के लिए जोड़ा गया ".config (function ($ httpProvider) ..." कहां रखा जाए? –