关于使用jsonp跨域获取数据的问题

发布于 2022-09-04 09:50:17 字数 548 浏览 9 评论 0

想用jsopn跨域请求一个别的服务器上的json文件clipboard.png
别的服务器的json文件如图

clipboard.png
但是报错
clipboard.png
在网上查了下说是给json数据加个(),不报错了,但是数据还是出不来。请问怎么解决这个问题。是json数据格式的问题么。

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

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

发布评论

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

评论(2

み零 2022-09-11 09:50:17

jsonp的原理就是通过动态添加script标签来发送网络请求,服务端解析出请求参数(回调函数名,客户端所需数据两部分)再返回一个内容为函数执行的脚本,长相大概是:callbackName(data)
所以jsonp是需要服务端和前端达成一些协议的,比如如何告诉服务端回调参数的参数名是什么,你代码中$.ajaxjsonp属性就会重写这个参数,比如你这里写了callback,服务端就要读取callback这个字段去解析出你需要的callbackName是什么,jsonpCallback则是你期望的jsonp成功回调名,然后把这个方法提前定义好,请求成功了会去调用这个函数。不知道你的返回值和其它部分代码是怎么写的,这段代码里没看到message函数的定义,另外既然写了success回调好像就可以直接处理请求结果了,jsonpCallback貌似就不需要定义了,另外就是你的服务器如何解析回调名需要确认,所以可以尝试:

  1. 和服务端沟通,对方是根据哪个参数判断回调名的,把jsonp属性改成那个参数。

  2. 定义好message函数,把success删掉;或者不定义message,把jsonpCallback删掉。

若相惜即相离 2022-09-11 09:50:17

服务器不支持跨域访问,所以你的jsonp他没做出响应,jsonp需要后台支持才可以的,并不是说任何一个网站的数据,你都能通过前台的jsonp获取数据那岂不是太不安全了,也可以iframe套from表单提交获取

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