Access to XMLHttpRequest at 'http://39.105.36.172:9250/openapi/agitool/operate/shortcutKeywords' from origin 'http://localhost:63343' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
时间: 2023-07-24 20:51:51 浏览: 104
这个错误是由于浏览器的同源策略(Same-Origin Policy)导致的。当你的前端应用程序试图从一个与自己不同源(协议、域名、端口号有任何一个不同)的服务器端点请求数据时,浏览器会发送一个预检请求(preflight request),以确定服务器是否允许跨域请求。如果服务器没有正确配置 CORS,就会返回上述错误。
要解决这个问题,你需要在服务器端添加响应头信息,启用 CORS。在你的情况下,服务器端点的响应需要包含 `Access-Control-Allow-Origin` 头信息,值为前端应用程序的域名或 `*`(表示允许所有域名跨域请求)。例如,可以在服务端添加以下代码:
```java
response.setHeader("Access-Control-Allow-Origin", "*");
```
请注意,如果你的请求还包含其他自定义头信息,例如 `Authorization`,则服务器端点的响应还需要包含 `Access-Control-Allow-Headers` 头信息,以允许这些头信息的跨域请求。例如:
```java
response.setHeader("Access-Control-Allow-Headers", "Authorization");
```
当然,这只是一个示例代码,具体要根据你的服务器端框架来实现。
相关问题
Access to XMLHttpRequest at 'http://39.105.36.172:9250/openapi/agitool/operate/shortcutKeywords' from localhost/:1 origin "http://localhost:5173' has been blocked by CoRs policy: The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:5173. http://localhost:5173', but only one is allowed.l
这个错误是因为你的服务器返回了多个 `Access-Control-Allow-Origin` 响应头信息,但是规范只允许一个值。你需要在服务器端修改响应头信息,确保只返回一个 `Access-Control-Allow-Origin` 值。
例如,如果你想允许多个域名跨域请求,可以使用逗号将它们分隔开,而不是返回多个 `Access-Control-Allow-Origin` 响应头信息。例如:
```java
response.setHeader("Access-Control-Allow-Origin", "http://localhost:5173, http://localhost:63343");
```
这样就可以允许 `http://localhost:5173` 和 `http://localhost:63343` 这两个域名跨域请求了。如果你只想允许一个域名跨域请求,可以直接指定该域名,例如:
```java
response.setHeader("Access-Control-Allow-Origin", "http://localhost:5173");
```
请注意,这些示例代码只是演示如何设置响应头信息,具体要根据你的服务器端框架来实现。
阅读全文