Jquery 为什么我的Ajax POST请求在WebApi响应之前返回错误?
如果这个问题已经得到了回答,我表示歉意,但我已经搜索了许多相关的术语,没有任何乐趣 我有一个带有Post方法的简单WebApi控制器:Jquery 为什么我的Ajax POST请求在WebApi响应之前返回错误?,jquery,ajax,json,asp.net-web-api,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.Serial
[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方法断点之前被命中-因此Ajax调用在post方法被输入之前就出错了
我尝试过从Post方法返回一个字符串,并在Ajax调用中设置dataType='text',但这没有什么区别
我还尝试从Post方法显式返回HttpResponseMessage对象。这没什么区别
当我在Ajax请求中将contentType设置为“text/plain”,将数据设置为“hello”时,调用甚至没有到达Post方法,我得到了405响应(“不允许使用方法”)
我做错了什么???尝试使用jsonp进行跨源ajax调用
您可以提供更多关于什么/为什么是跨源代码的解释,以及JSONP如何帮助解决这个问题。这只不过是一个“RTFM”回答。尝试在浏览器中使用(F12)开发人员工具并检查“url”,可能是路由覆盖了它。您是否通过在返回语句上创建断点来检查Post方法是否返回了某些内容