JQuery AJAX方法在JSONP请求上调用 "error"函数而不是 "success"函数

标签 jquery asp.net .net asp.net-web-api

我无法通过 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

那么它应该可以工作。

enter image description here

有关 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/

相关文章:

javascript - 当 DIV 改变大小时,DIV 的内容会移到 DIV 之外

c# - 按名称查找 GridView 列索引的方法

c# - 使用 C# 从字符串中提取数字

c# - .NET 正则表达式中的 "groups"和 "captures"有什么区别?

javascript - 如何使用javascript滚动html中pdf对象元素的底部?

javascript - 怎么算没有。 jQuery 表单上存在的选择 HTML 元素的数量?

c# - 如何将 RGB 值转换为浮点值?

c# - Task.Delay 永远不会完成

javascript - 同一页面上有两个表单和两个脚本,无论是否提交都会调用第一个脚本

asp.net - 为选中的 CheckBoxField 设置默认 bool 值