Firefox 和 nodejs 的 jQuery Ajax POST 错误
Posted
技术标签:
【中文标题】Firefox 和 nodejs 的 jQuery Ajax POST 错误【英文标题】:jQuery Ajax POST error with Firefox and nodejs 【发布时间】:2014-09-28 23:37:37 【问题描述】:我正在使用 nodejs 并尝试将 json 发送到我的服务器。该代码在 chrome 上完美运行,但在 Firefox 上我只收到错误回调,没有任何反应。我希望你们有一个想法。我真的很绝望 控制台日志:
“就绪状态:0”
“响应文本:未定义”
“状态:0”
“文本状态:错误”
“错误:”
这是我的 app.js
var db = require('./src/routes/dbconnection');
app.post('/db', db.postJson);
这是我在服务器上的脚本
exports.postJson = function (req, res)
var message_body = req.body;
insertIntoDB(message_body);
;
var insertIntoDB = function (message_body)
var messages = require('mongoskin').db('localhost:27017',
database: 'messages'
).collection('header_message');
messages.insert(message_body, function (err, result)
if (err) throw err;
if (result) console.log('Added!');
);
这是我的 Ajax 函数
$.ajax(
type: 'POST',
url: '/db',
dataType: 'json',
data:
color: color,
icon: icon,
message: banner_message,
leftButtonText: leftButtonText,
rightButtonText: rightButtonText,
closeMeButtonOnly: closeMeButtonOnly,
isEnabled: isEnabled
,
success: function ()
givePopup_success();
writeMessages();
showCurrentOne();
console.log("success");
,
error: function(xhr, textStatus, err)
console.log("readyState: " + xhr.readyState);
console.log("responseText: " + xhr.responseText);
console.log("status: " + xhr.status);
console.log("text status: " + textStatus);
console.log("error: " + err);
).complete(function (data)
console.log("done");
);
【问题讨论】:
您的错误函数接收包含有用诊断的参数,请参阅 jQuery 文档。打印出这些诊断信息,您就会更好地了解发生了什么。 所以我尝试了错误:function(xhr,textStatus,err) console.log("readyState:" + xhr.readyState); console.log("responseText:"+xhr.responseText); console.log("状态:" + xhr.status); console.log("文本状态:" + textStatus); console.log("错误:" + err); 但我只得到未定义或“0”。 这是否产生了任何新信息?如果是这样,请将其添加到您的问题中。 在 Firefox 上安装 Firebug 扩展,激活 Firebug,在 Firebug 中启用 Net 面板,然后使用该面板分析来自/来自浏览器的请求和响应。从 Firefox 进行调用时记录的服务器端是什么?与 Chrome 有什么不同? JSON return empty response on FireFox & Safari (Windows Vista)的可能重复 【参考方案1】:在您的$.ajax
选项中,使用contentType: 'application/json'
,以便服务器知道数据负载中的预期内容。最好是明确的。
另外,如果您使用 dataType
选项,请确保您的服务器始终在其响应中返回 json,即使它只是 。如果你的服务器什么也没返回,jQuery 会认为这是一个错误。
有关更多信息,请阅读jQuery ajax docs 中的 dataType -> json 部分。
【讨论】:
以上是关于Firefox 和 nodejs 的 jQuery Ajax POST 错误的主要内容,如果未能解决你的问题,请参考以下文章
Firefox 中的 jQuery 和 CSS 动画 Choppy