请求资源没有Access-Control-Allow-Origin头
时间: 2023-11-28 07:45:46 浏览: 40
跨域请求时,如果请求资源没有设置Access-Control-Allow-Origin头,就会出现No ‘Access-Control-Allow-Origin’ header is present on the requested resource错误。解决思路如下:
1. 在服务端设置Access-Control-Allow-Origin头,允许指定的域名进行跨域请求。
2. 使用JSONP跨域请求,JSONP是一种跨域请求的解决方案,通过动态创建script标签,将请求结果作为回调函数的参数返回。
在使用zuul网关解决跨域问题时,可以在网关中设置response的Access-Control-Allow-Origin为客户端orgin,然后服务网关访问微服务将response中的Access-Control-Allow-Origin:http://localhost:8080带了过去,微服务为了解决跨域,又在Access-Control-Allow-Origin中加了客户端orgin,Access-Control-Allow-Origin:http://localhost:8080,http://localhost:8080。
相关问题
请求资源没有Access-Control-Allow-Origin头解决方法
当请求资源没有Access-Control-Allow-Origin头时,可以通过Nginx配置跨域请求Access-Control-Allow-Origin * 来解决。具体方法如下:
1. 在Nginx配置文件中添加以下代码:
```nginx
location / {
add_header Access-Control-Allow-Origin *;
}
```
2. 重启Nginx服务使配置生效。
另外,还可以通过在后端代码中添加Access-Control-Allow-Origin头来解决该问题。具体方法如下:
1. 在后端代码中添加以下代码:
```python
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/')
def hello_world():
return 'Hello, World!'
```
2. 重启后端服务使配置生效。
请求头添加Access-Control-Allow-Origin
在处理跨域请求时,如果服务器没有在响应头中添加"Access-Control-Allow-Origin"字段,浏览器会报错。这个字段标识允许哪个域的请求。如果你想在请求头中添加"Access-Control-Allow-Origin"字段,你可以通过配置nginx.conf文件来实现。首先,打开nginx.conf文件,然后在合适的位置添加以下代码:
```
location / {
add_header Access-Control-Allow-Origin *;
}
```
这样配置后,服务器会在响应头中添加"Access-Control-Allow-Origin"字段,并设置为"*",表示允许任何域的请求。如果你想限制只允许特定的域请求,可以将"*"替换为相应的域名。配置完成后,重启nginx服务器使配置生效。这样就可以成功添加"Access-Control-Allow-Origin"字段到请求头中了。[1][2][3]