私はDjangoでWebアプリケーションを構築しています。 JavascriptでAjax(jQuery v1.8.3)経由でAPIコールがたくさんあります。Firefoxの例外 'JavaScriptコンポーネントに「available」という名前のメソッドがありません
働くそれらのほとんどが、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);
ありますこれはFirefoxでのみ発生します。 Chromeは正常に動作します。もう一度、他のリクエストが機能します。これを別に設定するのは、DELETE httpメソッドだけです。
要求は以下の通りです(Chromeで示した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
、私はすべての要求を受信しません。
JSコードは(ブレークポイントでFirebugのウォッチから直接取得)です:
options = {
contentType: "application/json",
data: Object {},
dataType: "json",
processData: false,
type: "DELETE",
url: "/api/reservation/13/",
error: function(),
success: function()
};
$.ajax(options);
私もFF内のすべての拡張機能を無効にしてみました。私はv20.0を走らせる。
あなたのjsコードは便利です。 – ZippyV
* "リクエストのタイプ(" POST "または" GET ")、デフォルトは" GET "注:ここでは、PUTやDELETEなどの他のHTTPリクエストメソッドも使用できますが、すべてのブラウザでサポートされていない***。 "* FirefoxがAJAX経由のDELETEをサポートしていない可能性はありますか? – Zeta
これはjQueryの問題ですか? [この回答](http://stackoverflow.com/a/166501/700283)は、すべての主要なブラウザがDELETEを実行できなければならないと言います(それは数年前でした)。 – graup