如何使用 Kendo Grid 实现数据类型 jsonp 来克服 CORS



更新:我无法控制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=?

最新更新