AJAX调用ASP MVC动作

时间:2016-02-04 22:39:01

标签: javascript c# jquery ajax asp.net-mvc

我尝试通过ajax从域外调用ASP MVC操作。

设置

我已经在内部托管了一个MVC应用程序:

[HttpPost]
[AllowAnonymous]
public ActionResult AjaxLogin(LoginViewModel model)
{
    [..Login stuff..]
    return Json(new { Url: "...", Result: "..." });
}

用法

为了测试我尝试使用Firefox中的HttpRequester插件进行manuell调用,结果如下:

test call

它工作正常,答案如预期。所以现在我想从第二个网页(不同的域名)进行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调用只给我一个错误。

error

那为什么我的测试电话工作但我的ajax电话没有?

的尝试

我还尝试使用firefox调试工具进行网络分析。

但我不明白为什么它不起作用,因为它显示了" status-code 200"但结果是空的!?

network

1 个答案:

答案 0 :(得分:0)

这可能会或可能不会解决您的问题,但如果您正在进行跨域AJAX调用,请确保设置您的CORS:

Setting Access-Control-Allow-Origin in ASP.Net MVC - simplest possible method