Firefox exception #39;JavaScript component does not have a method named: quot;availablequot;#39;(Firefox 异常JavaScript 组件没有名为:“可用的方法)
问题描述
我正在使用 Django 构建一个 Web 应用程序.我通过 Ajax (jQuery v1.8.3) 在 Javascript 中有一堆 API 调用.
I'm building a web app with Django. I have a bunch of API calls in Javascript via Ajax (jQuery v1.8.3).
它们中的大多数都有效,但特定的一个会导致返回对象的状态为 0,并且此消息作为 statusText:
Most of them work, but a particular one results in a return object with status 0 and this message as the statusText:
[Exception...'JavaScript 组件没有名为:available"'的方法,调用方法时:[nsIInputStream::available]"nsresult:0x80570030(NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED)"位置:JS 框架:: http://127.0.0.1:8000/media/js/jquery.js :: .send :: line 8434" 数据:无]
jQuery中对应的行是xhr.send((s.hasContent && s.data)|| null);
The corresponding line in jQuery is xhr.send( ( s.hasContent && s.data ) || null );
但是,这只发生在 Firefox 中.铬工作正常.同样,其他请求确实有效.唯一让这个与众不同的是 DELETE http 方法.
However, this occurs only in Firefox. Chrome works fine. Again, other requests do work. The only thing which sets this one apart is the DELETE http method.
请求如下(Chrome 中显示的 HTTP 网络数据 - Firebug 在 Firefox 中不显示任何内容):
The request is as follow (HTTP network data shown in Chrome – Firebug doesn't show anything 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
在服务器上,我没有收到任何请求.
On the server, I don't receive any request.
JS 代码是(在断点处直接取自 Firebug Watch):
The JS code is (taken directly from Firebug Watch at breakpoint):
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.
I also did try to disable all extensions in FF. I run v20.0.
推荐答案
问题是 Firefox 与 jQuery/XMLHttpRequest 的组合以及通过 HTTP DELETE 发送对象.一旦通过 JSON.stringify()
对对象进行 JSON 化,一切正常.
The problem was a combination of Firefox with jQuery/XMLHttpRequest and sending an object via HTTP DELETE. Once JSON'ifying the object via JSON.stringify()
everything worked.
不过,Firefox 会抛出一个奇怪的异常.
Still, a strange exception for Firefox to throw.
感谢 freddyb 的这个想法.
Thanks to freddyb for that idea.
这篇关于Firefox 异常'JavaScript 组件没有名为:“可用"的方法'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Firefox 异常'JavaScript 组件没有名为:“可用"的方法'
基础教程推荐
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 直接将值设置为滑块 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01