我已经使用NodeJS 10基本映像将NodeJS应用程序部署到Openshift。
当应用程序尝试使用ajax调用REST POST请求时,浏览器将返回“ option.uri是必需的参数”。
我尝试使用不同的NodeJS版本,以前是NodeJS 8,但是我切换到NodeJS 10,但它仍然返回相同的问题。
我一遍又一遍地检查了URL,它是正确的。
function order() {
var success = false;
$.ajax({
url: "orders",
type: "POST",
async: false,
success: function (data, textStatus, jqXHR) {
if (jqXHR.status == 201) {
console.log("Order placed.");
$("#user-message").html('<div class="alert alert-success alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button> Order placed.</div>');
deleteCart();
success = true;
}
},
error: function (jqXHR, textStatus, errorThrown) {
response_payload = JSON.parse(jqXHR.responseText)
console.log('error: ' + jqXHR.responseText);
if (jqXHR.status == 406) {
$("#user-message").html('<div class="alert alert-danger alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button> Error placing order. ' + response_payload.message + '</div>');
}
}
});
return success;
}
我希望POST请求能够成功,但是实际返回的请求是500 Internal Server Error。
我将返回的响应字符串化,并显示
{"readyState":4,"responseText":"{\"message\":\"options.uri is a required argument\",\"error\":{}}","responseJSON":{"message":"options.uri is a required argument","error":{}},"status":500,"statusText":"Internal Server Error"}
我在POST请求中遗漏了什么?