javascript - 不同ip地址,不同域名,能通过cors跨域吗?
天蓬老师
天蓬老师 2017-04-11 10:55:58
[JavaScript讨论组]
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(5)
阿神

1、你上面所述的情况,的确说明了跨域成功。
2、有线上的api,但是很少有直接说明原理的。提供的api是为了方便接入系统的人调用,因此多数都直接写明使用方法。如http://datainfo.duapp.com/sho...
3、你提到的bejson就提供api接口调用。如果你想获取京东的商品信息,就像你所提到的那样。

代码部分:把你请求数据的网址换成http://p.3.cn/prices/mgets?sk...,请求模式GET就行。展示信息需要知道数据解析规范。规范是由接口的制定者决定的。

大家讲道理

更新:

  1. 是的,你这就是跨域成功了。

  2. 开放平台的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,这样就获得了一个数组.怎么用就随意了.

大家讲道理

线上的例子?
吶,这有一个

$.getJSON('https://api.github.com/').then(function(d){console.log(d)})

但你似乎想要的是“获取任意网址的信息”,服务器不配合,你怎么要得到,或者你可以让你的后台给你获取,然后

$.get('/get_some_page?url=baidu.com')

只能帮到这了

@娃娃脾气 说得很对

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号