我处于一个奇怪的境地。我正在使用以下方法在节点服务器(执行基本身份验证)上发布:
$.ajax({
type: "POST",
accepts: "text/plain",
url: "http://localhost:3000/somewhere",
data: JSON.stringify(something),
contentType: "application/json; charset=UTF-8",
dataType: "json",
success: function(data) {
window.alert("Received back: '" + data + "'");
},
username: theUsername,
password: "a password"
}).done(function() {
alert( "second success" );
}).fail(function() {
alert( "error" );
}).always(function() {
alert( "finished" );
});
现在,当服务器响应如下:
res.writeHead(200, {"Content-Type": "text/plain"});
res.write("1");
res.end();
我可以看到弹出三个警报窗口:
- 收到回'1'
- 第二次成功
- 完成的
但是,如果我在服务器正在写入的字符串中添加一个字符,例如
res.write("1a");
我看到两个警报窗口弹出:
- 错误
- 完成的
为什么在第二种情况下,一个正常的字符串实际上会导致错误?有任何想法吗?(顺便说一句,如果服务器写下“12”而不是“1a”,我就成功了。)