跨域解决方案
将下面的代码,添加到你的Nginx里面即可;
location ~* .(eot|ttf|woff|svg|otf|woff2|otf)$
{
add_header Access-Control-Allow-Origin *;
}
location ~ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Methods 'GET,POST,PUT,PATCH,DELETE,OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
add_header Access-Control-Expose-Headers 'Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type';
if ($request_method = 'OPTIONS') {
return 200;
}
}
上面配置代码即可解决问题了,不想深入研究的,看到这里就可以啦=-=
- Access-Control-Allow-Origin
服务器默认是不被允许跨域的。给Nginx服务器配置`Access-Control-Allow-Origin *`后,表示服务器可以接受所有的请求源(Origin),即接受所有跨域的请求。
- Access-Control-Allow-Headers 是为了防止出现以下错误:
Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.
这个错误表示当前请求Content-Type的值不被支持。其实是我们发起了"application/json"的类型请求导致的。这里涉及到一个概念:预检请求(preflight request),请看下面"预检请求"的介绍。
- Access-Control-Allow-Methods 是为了防止出现以下错误:
Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.
- 给OPTIONS 添加200的返回,是为了处理在发送POST请求时Nginx依然拒绝访问,发送"预检请求"时,需要用到方法 OPTIONS,所以服务器需要允许该方法。
宝塔用户
将防跨站攻击关闭;
在配置文件添加规则即可;
不懂联系夏柔哦~