我想通过ajax从域外调用一个ASP MVC操作。
设置
我已经托管了一个包含此操作的MVC应用程序:
[HttpPost]
[AllowAnonymous]
public ActionResult AjaxLogin(LoginViewModel model)
{
[..Login stuff..]
return Json(new { Url: "...", Result: "..." });
}
使用方法
为了测试,我使用Firefox的HttpRequester插件进行手动调用,结果如下:
它工作正常并且返回了预期的答案。现在我想从另一个网页(不同的域)进行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调试工具进行网络分析。
但我不明白为什么它不起作用,因为它显示“状态码200”,但结果为空!?