如何理解跨域?
跨域是浏览器施加的安全显示,即不同源的的网站不能问其他网站的内容。。
但是我在本地起了一个vue项目,为什么可以使用axios直接访问豆瓣的api呢?
https://m.douban.com/rexxar/api/v2/muzzy/columns/10018/items?start=0&count=3
这种访问不是跨域的吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
跨域,所谓域就是指
http(s)://host:port
,只要这一串与当前网站不一致,浏览器会认为你已经跨域了。比如你发起一个
POST
请求,未跨域的情况下,会直接发起post请求,但是,如果你满足跨域条件,就会限制你。
具体执行如下:
首先会发起一个
OPTIONS
的请求到跨域目标服务器,如果返回状态码
200
,并且返回请求头Access-Control-Allow-Origin
;如果包含你的域名(通常为
*
,代表所有网站),浏览器则认为合法,再次发起目标请求POST
,这个时候才能成功,否则报错跨域无法访问。1.协议不同
2.域名不同
3.端口不同
三个条件有一个符合就能造成跨域
这种情况 这个api接口应该是对外开放的 服务端开启允许跨域
1.先看你的请求头有没有:
X-Requested-With: XMLHttpRequest
有这个说明是XHR请求,才会涉及到跨域问题
2.可能是服务端开启了允许跨域
header("Access-Control-Allow-Origin: *");如果对方的接口中加了这个,就允许你访问了啊,也有可能是公开的接口,所以他会直接开放权限
豆瓣API有Allow-Request-Origin头,允许跨域了。
人家做API的不让跨域,那还怎么玩?