调用数据接口被拦截,显示同源策略禁止读取数据,怎么解决?

发布于 2022-09-04 11:07:57 字数 765 浏览 25 评论 0


var set = {
    type: "GET",
    url: 'http://japi.juhe.cn/health_knowledge/categoryList?key=ba4fbbe97404cc',
    dataType: "json",
    success: function(data) {
        console.log(data);
    }
}
$.ajax(set);

显示错误:

已拦截跨源请求:同源策略禁止读取位于
http://japi.juhe.cn/health_kn...
的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

我调用的是聚合数据上的API,怎么解决这个问题呢?
追加一下,使用JSONP格式调用成功,但是会报错:

SyntaxError: missing ; before statement
"error_code" : 0 , "reason" : "Success!" , "result" : [ { "id" : 11 ,
"na categ...

但是返回数据显示"reason" : "Success!", 明显是成功的,好想知道解决方法。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

似最初 2022-09-11 11:07:57

同源策略是互联网安全的需求,所以也许有绕过该策略的方法,但是慢慢也会被封杀的,除非是服务器自己愿意(在头部设置Access-Control-Allow-Origin)或者使用其它协议,如WebSocket,那也是要你请求的服务器支持才行,个人观点。

所以如果是想要调用聚合数据上的API,请将数据发送到你的后台,然后由你的后台调用,得到的数据再返回你的前端。

报的错是语法错误,检查下你的代码?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文