如何理解跨域?

跨域是浏览器施加的安全显示,即不同源的的网站不能问其他网站的内容。。
但是我在本地起了一个vue项目,为什么可以使用axios直接访问豆瓣的api呢?

https://m.douban.com/rexxar/api/v2/muzzy/columns/10018/items?start=0&count=3

这种访问不是跨域的吗?

阅读 2.9k
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的不让跨域,那还怎么玩?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题