前端cors跨域

用vue脚手架构建项目,需要跨域,以前用的jsonp,但是只能get,想用cors来跨域,这个具体是怎么实现的。公司的项目是准备把前端和后端代码都放在同一个服务器上,这样也存在跨域吗?

阅读 18.6k
8 个回答

这个不属于吧,只是开发环境要跨域,配置下代理就好了

无论在不在同一个服务器,只要域名不同,端口不同,就是跨域。所以同一个服务器也会跨域,不同的服务器也可以不跨域。主要看你域名怎么配,代理服务器如何设置。

cors允许跨域,本质就是在服务端设置一下允许跨域的请求头。你也可以自己写个中间件,往header里写上允许跨域的域名就好了。

只需要在服务器端的response header里面加一个 Access-Control-Allow-Origin: 指定域名|| *(* 表示所有域名都可以跨域), 浏览器端便可以发起post的跨域请求。

原理不细说了, 可以在下面的文档里面好好了解下:
MDN CORS

端口不同就是跨域,个人推荐反向代理避免跨域

很简单,在服务器端添加两条头信息

PHP 语言描述,其他语言也一样,加上Header信息,声明允许访问的源

header("Access-Control-Allow-Origin: http://www.codefun.cn");
header("Access-Control-Allow-Credentials: true");

这个 http://www.codefun.cn 就是允许请求的地址

此外还接受 * 值表示所有请求都允许

其次你提到前段后端在同一个服务器是否涉及跨域,参考下面的话

同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同

参考

https://blog.codefun.cn/blog/...

1.跨域是和域名有关
2.cors 需要在nginx设置或者是服务端设置

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