跨域是浏览器的问题。浏览器的同源策略拒绝了我们的请求。 所谓同源是指,域名,协议,端口相同,浏览器执行一个脚本时同源的脚本才会被执行。如果非同源,那么在请求数据时,浏览器会在控制台中报上面的异常,提示拒绝访问。这是为了同一浏览器打开多个网站时,保护你的A网站登陆信息不被B网站拿去访问A网站,B网站登陆信息同理。
浏览器出现跨域问题的时候,会发送两次请求,第一次请求的方法是‘Option’,第二次请求是正常的Get或者post。
跨域解决方法
利用nginx解决跨域,新建一个server,server中内容如下,其中proxy_pass是代理的ip地址以及端口。也就是我们最终请求的地址。也就是在第一次请求的时候,由nginx直接返回204状态,不经过最终的ip地址。(注意修改proxy_pass中的地址)
server {
listen 8099;
server_name localhost;
location / {
root html;
index index.html index.htm;
add_header Access-Control-Allow-Origin http://www.domain1.com; #当前端只跨域不带cookie时,可为*
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
# 代理到ip地址端口
proxy_pass http://xxxx:xxxx;
}
}
评论区