![]() | 1 zhihaofans OP 试了网上的很多方法都不行,都提示不允许跨域 |
![]() | 2 explon 2016-07-13 21:15:15 +08:00 搜索 JSONP |
3 ousterljn 2016-07-13 21:17:16 +08:00 |
![]() | 4 zhihaofans OP @explon jsonp 之前试了几次要么还是那样要么返回空白数据,不知道是不是参数错误 |
![]() | 5 LancerComet 2016-07-13 21:27:41 +08:00 ![]() 1. Ajax 默认支持浏览器发起跨域请求( XHR Level 2 标准,可参考 http://www.ruanyifeng.com/blog/2012/09/xmlhttprequest_level_2.html ),只要服务器打开跨域权限就可以直接请求。 服务器不允许跨域请求: ![]() 服务器关闭跨域限制: ![]() 2. JSONP. |
![]() | 6 binux 2016-07-13 21:36:57 +08:00 需要对方支持 |
![]() | 7 0915240 2016-07-13 21:43:56 +08:00 @LancerComet bingo! 服务端开启或者 jsonp |
![]() | 8 iyaozhen 2016-07-13 21:47:23 +08:00 via Android |
![]() | 9 huntererer 2016-07-13 21:48:38 +08:00 |
10 DoraJDJ 2016-07-13 21:49:16 +08:00 |
![]() | 11 zhihaofans OP @LancerComet @binux 我是调用一个 API ,所以就没办法服务端开启支持了 T_T @iyaozhen 服务器中转的话,我一开始是这么做的,用 php ,但是因为我的服务器在日本,但 api 所在服务器却在国内再加上我基本上没怎么优化服务器所以中转就慢了很多,还有一个原因就是我怕服务器调用 api 太多次被封 ip(因为是个小型非盈利网站来的) @huntererer 谢谢,我看一下 |
![]() | 12 zhihaofans OP 试了一下几个网址,发现好像我调用的这个 api 不知道为什么就是失败,其他的几个都可以,用浏览器打开 api 地址就可以返回数据 |
![]() | 13 zxwind 2016-07-14 01:29:59 +08:00 用 yql ( https://developer.yahoo.com/yql/) 做过 |
![]() | 14 caixiexin 2016-07-14 07:48:22 +08:00 via Android 如果对方服务端你不能改的话,只能通过自己的服务端做一层转发咯 |
![]() | 15 wzxjohn 2016-07-14 08:37:08 +08:00 via iPhone @zhihaofans 用浏览器打开 API 地址完全不会导致跨域!这个测试对解决你的问题没有意义的。。。 |
![]() | 16 kiwi95 2016-07-14 08:56:19 +08:00 via Android 如果能修改服务器那开 cors 是最方便的,如果不能就只能在自己的服务器 curl 代理一层 |
![]() | 17 qinxi 2016-07-14 09:57:05 +08:00 nginx 反向代理 |
![]() | 18 Aaron99 2016-07-14 10:41:35 +08:00 via Android jsonp |
![]() | 19 zhihaofans OP @wzxjohn 我的意思是 跨域是成功了,但不知道为什么只有我用这个 API 时不返回数据,其他网址的都没问题 |
![]() | 20 finalspeed 2016-07-14 14:57:53 +08:00 @Aaron99 第三方 API 不支持,然并卵.... |
![]() | 21 flydogs 2016-07-14 17:58:05 +08:00 jsonp 服务器端和客户端都要修改。 |