我正在使用nodejs并尝试将json发送到我的服务器。代码在chrome上完美运行,但在firefox上我只得到错误回调而没有任何反应。我希望你们有个主意。我真的很绝望 控制台日志:
" readyState:0"
" responseText:undefined"
"状态: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");
});
答案 0 :(得分:0)
在$.ajax
选项中,使用contentType: 'application/json'
,以便服务器知道数据有效负载中的预期结果。最好是明确的。
此外,如果您使用dataType
选项,请确保您的服务器始终在其响应中返回json,即使它只是{}
。如果你的服务器什么都没有返回,jQuery会认为这是一个错误。
有关详细信息,请阅读dataType - > jQuery ajax docs中的json部分。