我尝试通过ajax从域外调用ASP MVC操作。
我已经在内部托管了一个MVC应用程序:
[HttpPost]
[AllowAnonymous]
public ActionResult AjaxLogin(LoginViewModel model)
{
[..Login stuff..]
return Json(new { Url: "...", Result: "..." });
}
为了测试我尝试使用Firefox中的HttpRequester插件进行manuell调用,结果如下:
它工作正常,答案如预期。所以现在我想从第二个网页(不同的域名)进行ajax调用。
我的jquery(2.2.0)ajax调用如下所示:
var requestData = {
model: {
Email: emailValue,
Password: passwordValue
}
};
var requestPlain = JSON.stringify(requestData);
$.ajax({
url: json_login_url,
data: requestData,
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (result, textStatus, jqXHR) {
[...]
},
error: function (jqXHR, textStatus, errorThrown) {
[...]
},
beforeSend: function (jqXHR, settings) {
return true;
},
complete: function (jqXHR, textStatus) {
},
});
ajax调用只给我一个错误。
那为什么我的测试电话工作但我的ajax电话没有?
我还尝试使用firefox调试工具进行网络分析。
但我不明白为什么它不起作用,因为它显示了" status-code 200"但结果是空的!?
答案 0 :(得分:0)
这可能会或可能不会解决您的问题,但如果您正在进行跨域AJAX调用,请确保设置您的CORS:
Setting Access-Control-Allow-Origin in ASP.Net MVC - simplest possible method