道歉,如果这个问题已经得到解答,但我已经搜索了很多相关条款而没有任何快乐。
我有一个带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响应('方法不允许') 。
我做错了什么?