更新:我无法控制API端点的代码或服务器。这就是为什么我要追求这个jsonp"黑客"。我的前端是AngularJS。我还在 3 个不同的浏览器中附加了相同 API 调用的屏幕截图。
我搜索了SO的所有内容,但找不到答案。我的代码目前使用剑道网格来显示一些数据。请参阅下面的现有代码,即 kendo.data.DataSource 的传输部分。
transport: {
read: {
contentType: 'application/json',
dataType: 'json', //change this to jsonp
url: baseUrl + '/api/entity/wandcsearch',
data: {
...
}
}
}
API 调用在 IE 中工作正常。但我也需要让它适用于 Edge 和 Chrome。当我通过 UI 触发相同的调用时。Chrome 返回"访问控制-允许来源"错误。做了一些研究,并建议将数据类型从"json"更改为"jsonp"。进行了更改,现在调用成功触发,但剑道网格为空白/空。任何帮助将不胜感激!
在此处输入图像描述
首先检查您的浏览器是否支持 CORS - [https://caniuse.com/#feat=cors]
第二
如果你正在实现$.get,那么你应该将dataType设置为jsonp。
如果您使用的是 $.getJSON,那么您应该在 URL 中包含 callback=?