在前端开发中 难免会遇到跨域的问题,尤其是前后端分离的现在,后端如果是运行的服务器上,而前端运行在本地上,那必须要解决的跨域的问题。
下面列了什么情况下,要解决跨域的问题:
URL | 说明 | 是否允许请求 |
---|---|---|
http://a.example.com/ http://a.example.com/a.txt | 同域名下 | 允许 |
http://a.example.com/b/a.txthttp://a.example.com/b/a.txt | 同域名下不同目录 | 允许 |
http://a.example.com/http://a.example.com:8080/a.txt | 同域名下不同端口 | 不允许 |
http://a.example.com/ https://a.example.com/a.txt | 同域名下不同协议 | 不允许 |
http://a.example.com/ http://b.example.com/a.txt | 不同域下 | 不允许 |
http://a.example.com/ http://a.foo.com/a.txt | 不同域下 | 不允许 |
关于如何解决:
jsonp形式,在react中、angular也有针对这一情况来解决的,当然如果要用jsonp的形式,需要后端来配合返回数据的格式,这种情况在传到同一服务器下并不推荐这样做。
如果是传到同一服务器下的话,建议后端配置一个请求头,我用nodejs写的话,只需要配置一段话就可以了:
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
next();
});
这段话的意思,设置请求允许任何域名的请求。
以上是个人见解,本人入前端的时间不过1年,如有错误也请指正。关于以上内容如果有疑问可以下方留言;
关于此demo的例子,可以查看个人github:
https://git.oschina.net/kaykie/gerenceshikuayue