मैं Django के साथ एक वेब ऐप बना रहा हूं। मेरे पास जावास्क्रिप्ट में अजाक्स (jQuery v1.8.3) के माध्यम से एपीआई कॉल का एक गुच्छा है।फ़ायरफ़ॉक्स अपवाद 'जावास्क्रिप्ट घटक में कोई विधि नहीं है: "उपलब्ध"'
उनमें से ज्यादातर काम करते हैं, लेकिन एक विशेष रूप से एक statusText के रूप में स्थिति 0 के साथ एक वापसी वस्तु में परिणाम और इस संदेश:
[Exception... "'JavaScript component does not have a method named: "available"' when calling method: [nsIInputStream::available]" nsresult: "0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)" location: "JS frame :: http://127.0.0.1:8000/media/js/jquery.js :: .send :: line 8434" data: no]
jQuery में इसी लाइन xhr.send((s.hasContent && s.data) || null);
है हालांकि, यह केवल फ़ायरफ़ॉक्स में होता है। क्रोम ठीक काम करता है। फिर, अन्य अनुरोध काम करते हैं। एकमात्र चीज जो इसे अलग करती है वह DELETE http विधि है।
अनुरोध का पालन के रूप में है (HTTP नेटवर्क क्रोम में दिखाया गया डेटा - Firebug Firefox में कुछ भी दिखाई नहीं देता):
Request URL: http://127.0.0.1:8000/api/reservation/13/
Request Method: DELETE
Status Code: 400 BAD REQUEST (This is expected)
Request Headers
Accept: application/json, text/javascript, */*; q=0.01
Content-Length: 15
Content-Type: application/json
Origin: http://127.0.0.1:8000
Referer: http://127.0.0.1:8000/reservation/
X-Requested-With: XMLHttpRequest
Request Payload
[object Object]
Response Headers
Cache-Control: no-cache
Content-Type: text/html; charset=utf-8
Date: Tue, 02 Apr 2013 19:18:35 GMT
Server: WSGIServer/0.1 Python/2.7.2
सर्वर पर, मैं किसी भी अनुरोध प्राप्त नहीं होता।
जे एस कोड (ब्रेकप्वाइंट पर से Firebug घड़ी सीधे ले जाया) है:
options = {
contentType: "application/json",
data: Object {},
dataType: "json",
processData: false,
type: "DELETE",
url: "/api/reservation/13/",
error: function(),
success: function()
};
$.ajax(options);
मैं भी एफएफ में सभी एक्सटेंशन को अक्षम करने की कोशिश की थी। मैं v20.0 चलाता हूँ।
आपका जेएस कोड आसान होगा। – ZippyV
* "बनाने का अनुरोध (" पोस्ट "या" जीईटी "), डिफ़ॉल्ट" प्राप्त करें "है। नोट: अन्य HTTP अनुरोध विधियों, जैसे कि पुट और डिलीट, का भी यहां उपयोग किया जा सकता है, *** लेकिन वे हैं सभी ब्राउज़रों द्वारा समर्थित नहीं ***। "* शायद यह संभव है कि फ़ायरफ़ॉक्स AJAX के माध्यम से DELETE का समर्थन नहीं करता है? – Zeta
क्या यह एक jQuery समस्या है? [यह उत्तर] (http://stackoverflow.com/a/166501/700283) का कहना है कि सभी प्रमुख ब्राउज़र DELETEs (और वह साल पहले था) करने में सक्षम होना चाहिए। – graup