我对控制器动作方法的ajax调用没有击中控制器,它介于两者之间。它说xhr.status = 500
,response text = Internal Server Error
相同的代码在其他项目中运行良好。
JavaScript代码
ajaxCall: function (data, url, success, error, noShow) {
// make sure that there is never an empty POST body to protect against proxy allowing too soon
if (!data) {
data = "{'dummy':1}";
}
var reqData = data;
$.ajax({
type: "POST",
traditional: true,
url: url,
data: data,
// switch on/off geenraic AJAX events bound globally
/** @default false
*/
global: !(noShow || false),
cache: false,
dataType: "json",
// add CSRF token to each request
beforeSend: function (xhr) { /* jquery 1.5.* use headers */
var csrf_token = $("[name=__RequestVerificationToken]").val();
xhr.setRequestHeader('__RequestVerificationToken', csrf_token);
},
contentType: "application/json",
success: function (data) {
success(data);
},
error: function (a, b, c) {
// repeat ajax call when "Empty body element" message gets returned. It means that proxy challenge was completed too soon.
if (a.responseText == "EmptyBodyElement")
Service.ajaxCall(reqData, url, success, error);
else {
if (error)
error(a, b, c);
else
Service.responseError(a, b, c);
}
}
});
},
我在jQuery 1.9.1中收到错误
if ( callback && ( isAbort || xhr.readyState === 4 ) )
xhr.status = 500
,xhr.responsetext = Internal Server Error
在其他项目中使用相同的代码,我检查了所有的注册事项。
答案 0 :(得分:0)
控制器动作方法
[使用AllowAnonymous]
public ActionResult CheckUserStatus(string UserId,bool NewUserStatusCheck)
{
}
断点未击中
Xhr.responstext =“内部服务器错误”
答案 1 :(得分:0)
我遇到了类似的问题。
这是我的错误代码。
“JQUERY CODE”
$.ajax({
url: "@Url.Action("AllocateByCapacity","BookScenario")",
dataType: 'json',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({'scenarioId':JSON.stringify(PlanningBookHandler.getScenarioId())
}),
success: function (response) {
SCP.Utils.showMessageDialog("Records Updated");
},
error: function () {
SCP.Utils.showMessageDialog("Records UpdateFailed");
}
});
控制器行动方法代码
public ActionResult AllocateByCapacity(int scenarioId)
{
return Json(new object());
}
在我的例子中,你可以看到我将字符串值传递给期望整数参数的action方法。这是我在代码中发现的错误。将参数更改为整数值代码后工作正常。