用vue脚手架构建项目,需要跨域,以前用的jsonp,但是只能get,想用cors来跨域,这个具体是怎么实现的。公司的项目是准备把前端和后端代码都放在同一个服务器上,这样也存在跨域吗?
用vue脚手架构建项目,需要跨域,以前用的jsonp,但是只能get,想用cors来跨域,这个具体是怎么实现的。公司的项目是准备把前端和后端代码都放在同一个服务器上,这样也存在跨域吗?
无论在不在同一个服务器,只要域名不同,端口不同,就是跨域。所以同一个服务器也会跨域,不同的服务器也可以不跨域。主要看你域名怎么配,代理服务器如何设置。
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 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同
参考
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答1.8k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
看看这篇?
跨域有多种情况,端口不同,是其中一种。
http://www.jianshu.com/p/2d4a...