У меня 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.info(JSON.stringify(error))
console.info(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.info("ERROR: " + err.code + " (" + err.message + ")");
return;
}
});
req.busboy.on('file', function (fieldname, file, filename) {
console.info("Uploading: " + filename);
fstream = fs.createWriteStream(config.content_upload_path.pdf_path + filename + 'abc');
file.pipe(fstream,function(err) {
if (err) {
console.info('pipe error due to stream')
console.info("ERROR: " + err.code + " (" + err.message + ")");
return;
}
});
fstream.on('close', function () {
fileName = filename;
fileObject = file;
uploadFile(paramData, res)
res.redirect('back');
console.info('method complete')
});
fstream.on('error', function (err) {
console.info('stream on error event')
console.info(err)
generateWebServiceResponse(res, false, null, 200, err)
console.info(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. Но в каждом случае он приземляется в случае ошибки.
Я также не могу устранить ошибку источника доступа, упомянутую в прикрепленном изображении.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Произошло это из-за CORS. Вы должны включить CORS для своего маршрута. Самый простой способ - использовать ПО промежуточного слоя CORS для Node.js
Я использовал cors в app.js .. например var cors = require ('cors'); app.use (cors ()); И я избавился от этой ошибки происхождения доступа ... спасибо .... Теперь еще одна проблема, которую я определил: return object is: object: Object
Хорошо .. Я получил то, что хотел! .... Но .... в событии ajax.done () ... не в событии ajax.success () ... В чем может быть причина?
Пожалуйста, проверьте это: stackoverflow.com/questions/19966707/cors-error-on-same-doma в