从节点 JavaScript 返回到 jQuery 的 Ajax 调用落在错误函数上
Posted
技术标签:
【中文标题】从节点 JavaScript 返回到 jQuery 的 Ajax 调用落在错误函数上【英文标题】:Ajax call returning from node JavaScript to jQuery lands on error function 【发布时间】:2018-11-20 14:50:41 【问题描述】:我有 jQuery 作为客户端脚本和节点 javascript 服务器作为后端。
我曾经将请求发布到节点服务器以获取数据。请在下面找到我的 AJAX 调用。
我的问题是,即使我的响应设置为成功,它总是出现在 jquery.AJAX 方法的错误函数中。
错误对象看起来像
$.ajax(
url : 'http://127.0.0.1:3000/uploadcontent/fileUpload',
type : 'post',
data : formData,
enctype : 'multipart/form-data',
processData : false,
contentType : false,
error : function(error,jqXHR, exception)
errorMessage(error);
console.log(JSON.stringify(error))
console.log(exception +" : "+error);
,
success : function(data)
alert(data);
if (data.sucess)
successMessage(data.returnMessage);
else
alert('error');
if (data.returnObj != null)
else
errorMessage(data.returnMessage);
)
现在,在我的节点 JavaScript 路由下方找到上述请求。
app.post('/fileupload', function(req, res)
var fstream;
var fileName, bunchId, standard, userKey, subject, unit, chapter, topic;
req.pipe(req.busboy,function(err)
if(err)
console.log("ERROR: " + err.code + " (" + err.message + ")");
return;
);
req.busboy.on('file', function (fieldname, file, filename)
console.log("Uploading: " + filename);
fstream = fs.createWriteStream(config.content_upload_path.pdf_path + filename + 'abc');
file.pipe(fstream,function(err)
if(err)
console.log('pipe error due to stream')
console.log("ERROR: " + err.code + " (" + err.message + ")");
return;
);
fstream.on('close', function ()
fileName = filename;
fileObject = file;
uploadFile(paramData, res)
res.redirect('back');
console.log('method complete')
);
fstream.on('error', function (err)
console.log('stream on error event')
console.log(err)
generateWebServiceResponse(res, false, null, 200, err)
console.log(res);
res.send()
);
);
generateWebServiceResponse 方法如下所示:
function generateWebServiceResponse(response, isSuccess, result, httpStatus,
returnMessage)
response.json(
isSucess : isSuccess,
returnObj : result,
returnMessage : returnMessage,
resultCode : 0,
httpStatus : httpStatus
);
即使在失败的情况下,它也应该使用isSuccess = false
进入成功函数。但在每种情况下,它都会出现在错误情况下。
我也无法解决附图中提到的访问来源错误。
【问题讨论】:
请检查:***.com/questions/19966707/cors-error-on-same-domain 【参考方案1】:因为CORS 而发生。您必须为您的路线启用 CORS。最简单的方法是使用Node.js CORS middleware
【讨论】:
我在 app.js 中使用过 cors .. 比如 var cors = require('cors'); app.use(cors());我摆脱了那个访问来源错误......谢谢......现在,我定义的另一个问题是:返回对象是:对象:对象 好的..我得到了我想要的对象! ....但是....在 ajax.done() 事件中...不在 ajax.success() 事件中...可能是什么原因?以上是关于从节点 JavaScript 返回到 jQuery 的 Ajax 调用落在错误函数上的主要内容,如果未能解决你的问题,请参考以下文章