使用AJAX调用ASP MVC操作

3

我想通过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调用只返回错误。

error

那么为什么我的测试调用可以工作,但我的ajax调用却不行呢?

尝试

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

但我不明白为什么它不起作用,因为它显示“状态码200”,但结果为空!?

network


我不确定这是否是答案,但你尝试过使用JSONP吗?-https://dev59.com/GHI95IYBdhLWcg3w-DL0 - Dawood Awan
另外一个问题是,如果您正在从另一个URL请求数据,使用Web API控制器是否更好? - Dawood Awan
1个回答

0

但这并不能解释为什么使用HttpRequester测试可以成功?如果这是解决方案,那么它也应该失败。 - Steffen Mangold

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接