我无法通过 jQuery AJAX 调用访问基于 .net Framework 4.0 构建的 asp.net Web API。
WebAPI 返回以下 JSON 结果
["Value1", "Value2"]
WebClient 实现以下 jQuery 代码来访问 WebAPI
$.ajax({
type: 'GET',
url: 'http://localhost:62915/api/values',
contentType: 'application/json',
dataType: "jsonp",
success: function (data) {
alert('success');
console.log(data);
},
error: function (reason) {
alert('fail');
console.log(reason);
}
});
我在 Chrome 网络选项卡上没有收到任何错误消息,并且可以在其顶部看到预期的 JSON 结果。
但是,问题是它没有调用“成功”方法,而是调用“错误”方法。 我的 jQuery 代码出了什么问题?
提前致谢。
--SJ
最佳答案
一个问题可能是您的 API 尚不支持 JSONP。您可以通过一些步骤使其发挥作用。
- 从 nuget WebApiContrib.Formatting.Jsonp 安装包
- 在 HttpConfiguration 实例上调用扩展方法 AddJsonpFormatter
那么它应该可以工作。
有关 jsonp 的更多详细信息:
https://en.wikipedia.org/wiki/JSONP
https://github.com/WebApiContrib/WebApiContrib.Formatting.Jsonp
关于JQuery AJAX方法在JSONP请求上调用 "error"函数而不是 "success"函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31041392/