跨域
跨域问题是浏览器对于ajax请求的一种安全限制,一个页面发起的ajax请求,只能是与当前页域名相同的路径,这能有效组织跨站攻击。因此,跨域问题是针对ajax的一种限制
跨域原因说明 | 示例 |
---|---|
域名不同 | www.jd.com 与 www.taobao.com |
域名相同,端口不同 | www.jd.com:8080 与 www.jd.com:8081 |
二级域名不同 | item.jd.com 与 miaosha.jd.com |
解决跨域问题的方案
-
jsonp
是一种需要服务的支持,且只能发起get请求的解决方案,现代开发中已经很少使用
-
nginx
利用nginx把跨域反向代理为不跨越,支持各种请求方式,但这样会让nginx.conf文件语义不清晰
-
CORS
推荐使用,可以在服务端进行控制是否允许跨域,可自定义规则并支持各种请求方式,但有可能会产生额外的请求