扫码关注官方订阅号
欢迎选择我的课程,让我们一起见证您的进步~~
1、你上面所述的情况,的确说明了跨域成功。2、有线上的api,但是很少有直接说明原理的。提供的api是为了方便接入系统的人调用,因此多数都直接写明使用方法。如http://datainfo.duapp.com/sho...3、你提到的bejson就提供api接口调用。如果你想获取京东的商品信息,就像你所提到的那样。
代码部分:把你请求数据的网址换成http://p.3.cn/prices/mgets?sk...,请求模式GET就行。展示信息需要知道数据解析规范。规范是由接口的制定者决定的。
更新:
是的,你这就是跨域成功了。
开放平台的api,一般都有说明怎么解决跨域问题。请仔细查看其文档。
-----------以下是原答案-----------
首先,楼主要清楚一个概念:“是谁阻止了跨域访问?”答案不是js,也不是web server,也不是服务端脚本。而是浏览器。
每一段在浏览器运行的js,都有属于它的网址,网址当然就有域名。
当url-1里面的js发起ajax请求url-2时,浏览器此时不会检查跨域,而是直接向url-2发起请求。当浏览器收到响应后,会判断url-2的域名是否和你ajax所在域名是否一致,如果不一致,浏览器会检查url-2的响应headers里面有没有声明允许跨域Access-Control-Allow-...,如果有且发起ajax的js所在域通过,那么会讲相应传递给js,否则在浏览器这里就阻断了。
Access-Control-Allow-...
说完了。感觉比百度上说的还复杂。。
为什么呢?因为楼主提的这个问题是个很复杂的问题。涉及范围包括:“域名、url、js、http、浏览器” 其中知识缺一不可。所以解释起来当然复杂。
有没有简单点的解答呢?当然有,只要楼主说出自己服务端用的什么脚本语言,或者什么web server。然后给出js ajax请求的代码。我用几行代码就能为楼主解决问题。而不是长篇大论跨域原理。
所以楼主,你到底是要听原理还是要实现代码?
自己项目的跨域就JSONP、CORS,公共API直接使用就可以了
第一个问题,跨域就像穿针引线,比如你两服务器穿了针线,他们就能跨.第二个问题:api上有参数比如商品ID之类,换成你要查询的就出来你那个地址,直接file_get_contents获得后json_decode,这样就获得了一个数组.怎么用就随意了.
线上的例子?吶,这有一个
$.getJSON('https://api.github.com/').then(function(d){console.log(d)})
但你似乎想要的是“获取任意网址的信息”,服务器不配合,你怎么要得到,或者你可以让你的后台给你获取,然后
$.get('/get_some_page?url=baidu.com')
只能帮到这了
@娃娃脾气 说得很对
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
1、你上面所述的情况,的确说明了跨域成功。
2、有线上的api,但是很少有直接说明原理的。提供的api是为了方便接入系统的人调用,因此多数都直接写明使用方法。如http://datainfo.duapp.com/sho...
3、你提到的bejson就提供api接口调用。如果你想获取京东的商品信息,就像你所提到的那样。
代码部分:把你请求数据的网址换成http://p.3.cn/prices/mgets?sk...,请求模式GET就行。展示信息需要知道数据解析规范。规范是由接口的制定者决定的。
更新:
是的,你这就是跨域成功了。
开放平台的api,一般都有说明怎么解决跨域问题。请仔细查看其文档。
-----------以下是原答案-----------
首先,楼主要清楚一个概念:“是谁阻止了跨域访问?”
答案不是js,也不是web server,也不是服务端脚本。
而是浏览器。
每一段在浏览器运行的js,都有属于它的网址,网址当然就有域名。
当url-1里面的js发起ajax请求url-2时,浏览器此时不会检查跨域,而是直接向url-2发起请求。
当浏览器收到响应后,会判断url-2的域名是否和你ajax所在域名是否一致,如果不一致,浏览器会检查url-2的响应headers里面有没有声明允许跨域
Access-Control-Allow-...,如果有且发起ajax的js所在域通过,那么会讲相应传递给js,否则在浏览器这里就阻断了。说完了。感觉比百度上说的还复杂。。
为什么呢?因为楼主提的这个问题是个很复杂的问题。涉及范围包括:“域名、url、js、http、浏览器” 其中知识缺一不可。所以解释起来当然复杂。
有没有简单点的解答呢?
当然有,只要楼主说出自己服务端用的什么脚本语言,或者什么web server。然后给出js ajax请求的代码。
我用几行代码就能为楼主解决问题。而不是长篇大论跨域原理。
所以楼主,你到底是要听原理还是要实现代码?
自己项目的跨域就JSONP、CORS,公共API直接使用就可以了
第一个问题,跨域就像穿针引线,比如你两服务器穿了针线,他们就能跨.
第二个问题:api上有参数比如商品ID之类,换成你要查询的就出来你那个地址,直接file_get_contents获得后json_decode,这样就获得了一个数组.怎么用就随意了.
线上的例子?
吶,这有一个
但你似乎想要的是“获取任意网址的信息”,服务器不配合,你怎么要得到,或者你可以让你的后台给你获取,然后
只能帮到这了
@娃娃脾气 说得很对