author:咔咔

 

先看一下哪些都属于跨域

【Nginx】第十二节  配置跨域访问_json

 

跨域:这个意思就是在A域名下的业务,需要请求到B域名的代码,这就这简单的跨域

 

在正常的业务中,很难避免跨域,所以我们就需要使用nginx配置一下

 

location / {  
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
}

 

1. Access-Control-Allow-Origin

服务器默认是不被允许跨域的。给Nginx服务器配置Access-Control-Allow-Origin *后,表示服务器可以接受所有的请求源(Origin),即接受所有跨域的请求。

2. 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),请看下面”预检请求”的介绍。

3. Access-Control-Allow-Methods 是为了防止出现以下错误:

Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.

发送”预检请求”时,需要用到方法 OPTIONS ,所以服务器需要允许该方法。