为什么我的Ajax POST请求在WebApi响应之前返回错误?

时间:2014-11-10 16:57:34

标签: jquery ajax json asp.net-web-api

道歉,如果这个问题已经得到解答,但我已经搜索了很多相关条款而没有任何快乐。

我有一个带Post方法的简单WebApi控制器:

[HttpPost]
public string Post()
{
    string thing = "hi";
    var jSonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    var output = jSonSerializer.Serialize(thing);
    return output;
}

我还对上面的Post方法进行了Ajax调用,在单击按钮时执行:

$.ajax({
    type: 'POST',
    url: 'http://localhost:58492/WebApi/api/PhysicalActivity',
    dataType: 'json',
    success: function (response) {
        console.dir(response.status);
    },
    error: function (thing) {
        alert("Ajax call to PhysicalActivity/Post failed");
    }
});

请求肯定是通过WebApi post方法进行的,因为我有一个断点设置,它被一致地命中。

但是,它没有收到成功的回复。 Ajax错误回调正在被攻击。

实际上,我还在Ajax错误回调中设置了一个断点,并且在post方法断点之前命中该断点 - 所以在甚至输入Post方法之前Ajax调用错误输出。

我尝试从Post方法返回一个字符串,并在Ajax调用中设置dataType ='text',但这没什么区别。

我还试过从Post方法显式返回一个HttpResponseMessage对象。没有区别。

当我在Ajax请求中将contentType设置为'text / plain'并将数据设置为'hello'时,调用甚至没有到达Post方法,我得到405响应('方法不允许') 。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

尝试jsonp进行交叉源ajax调用 http://learn.jquery.com/ajax/working-with-jsonp/