当我尝试返回成功时,我总是收到错误。
这是我的脚本代码:
$.ajax({
xhr: function(){
var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function(evt){
console.log('up');
uploadProgress(evt);
}, false);
//Download progress
xhr.addEventListener("progress", function(evt){
console.log('down');
}, false);
return xhr;
},
url : 'upload',
type: 'POST',
data: data,
cache: false,
dataType: 'xml',
processData: false,
contentType: false,
success: function (result) {
alert('success!');
},
error: function(err){
alert("error --'");
console.log(err);
}
});
我尝试用以下内容返回成功消息:
var response = {
status : 200,
success : 'Updated Successfully'
}
res.type('json');
res.end(JSON.stringify(response));
或者这个:
res.end('{"success" : "Updated Successfully", "status" : 200}');
或者这个:
res.status(200).send(JSON.parse('{"success":"Hey"}'));
e.t.c ...
我总是有错误警报。 。
答案 0 :(得分:0)
您确定传递给ajax的选项的url: 'upload'
是否正确?
另外,在错误处理程序上试试这个:
error: (jqXHR, exception) {
alert("error --'");
console.log(jqXHR.status);
}
然后看看你是获得HTTP 404,还是500,这意味着实际的服务器被命中但是后端有错误
如果您获得200回,那么您的问题应该是从服务器返回的格式错误的json,请在返回json时尝试此操作:
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(object));
答案 1 :(得分:0)
<强>解决方案:强>
如果您要发送 xml 数据,则需要发送相同类型的响应:)
的变化:
var xml = require('xml');
//and response:
res.status(200).type('text/xml').send(xml({success:'Hello'}));