Sto costruendo un'app Web con Django. Ho un sacco di chiamate API in Javascript tramite Ajax (jQuery v1.8.3).eccezione Firefox 'Componente JavaScript non ha un metodo denominato: "disponibile"'
maggior parte lavora, ma una particolare risultato in un oggetto ritorno con stato 0 e questo messaggio come statusText:
[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]
La linea corrispondente jQuery è xhr.send((s.hasContent && s.data) || null);
Tuttavia, questo si verifica solo in Firefox. Chrome funziona bene. Ancora, altre richieste funzionano. L'unica cosa che lo distingue è il metodo DELETE http.
La richiesta è la seguente (dati di rete HTTP mostrati in Chrome - Firebug non mostra nulla in 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
Sul server, non ricevo alcuna richiesta.
Il codice JS è (presa direttamente da Firebug Guarda al punto di interruzione):
options = {
contentType: "application/json",
data: Object {},
dataType: "json",
processData: false,
type: "DELETE",
url: "/api/reservation/13/",
error: function(),
success: function()
};
$.ajax(options);
Ho anche provato a disattivare tutte le estensioni in FF. Corro v20.0.
Il tuo codice js sarebbe utile. – ZippyV
* "Il tipo di richiesta da rendere (" POST "o" GET "), il valore predefinito è" GET ". Nota: Altri metodi di richiesta HTTP, come PUT e DELETE, possono anche essere usati qui, *** ma sono non supportato da tutti i browser ***. "* Forse è possibile che Firefox non supporti DELETE tramite AJAX? – Zeta
Questo è un problema jQuery? [Questa risposta] (http://stackoverflow.com/a/166501/700283) dice che tutti i principali browser dovrebbero essere in grado di fare DELETE (e che era anni fa). – graup