Access to XMLHttpRequest at 'http://wl-api.s1.m173.net/api/orders' from origin 'http://localhost:4200' has been blocked by CORS policy: Request header field token is not allowed by Access-Control-Allow-Headers in preflight response.
时间: 2024-03-28 11:40:52 浏览: 18
这是一个跨域资源共享(CORS)问题。在浏览器端访问一个不同域名的API时,浏览器会发送一个预检请求(preflight request)以确认服务器是否允许跨域访问。在预检请求中,会检查请求头中是否包含“token”字段,如果服务器没有明确允许这个请求头,那么浏览器就会拒绝这个请求。为了解决这个问题,你需要在服务端的响应头中添加“Access-Control-Allow-Headers”字段,并将其中的值设置为“token”以允许跨域访问。
相关问题
Access to XMLHttpRequest at 'http://localhost:8081/api/login' from origin 'http://localhost:8080'
根据提供的引用内容,你可以通过以下两种方式解决"Access to XMLHttpRequest at 'http://localhost:8081/api/login' from origin 'http://localhost:8080'?"的问题:
1. 在PHP中添加跨域配置:
```php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, DELETE");
header("Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Accept-Language,Origin,Accept-Encoding,token");
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
exit();
}
```
2. 在Spring Boot中添加跨域配置:
```java
@Configuration
public class AccessControlAllowOriginFilter implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/*/**")
.allowedHeaders("*")
.allowedMethods("*")
.maxAge(1800)
.allowedOrigins("*");
}
}
```
这两种方式都是通过设置响应头来允许跨域请求。第一种方式是在PHP中添加相应的header头,第二种方式是在Spring Boot中添加一个过滤器类来配置跨域请求。
Access to XMLHttpRequest at 'http://api-dashboard.yudao.iocoder.cn/admin-api/system/dict-data/list-all-simple' from origin 'http://localhost:82' 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.
引用\[1\]和\[2\]中提到的错误信息是关于CORS(跨域资源共享)策略的问题。CORS是一种浏览器安全机制,用于限制跨域请求。当一个网页向另一个域名的接口发送请求时,如果接口没有正确配置CORS策略,浏览器会阻止该请求。
引用\[3\]中提到的解决过程是通过配置代理来解决CORS问题。在Vue Cli3项目中,可以在vue.config.js文件中配置代理。通过设置代理,将请求转发到目标地址,并在转发过程中添加必要的CORS头信息。
对于问题中的错误信息,可以尝试按照以下步骤解决:
1. 在vue.config.js文件中添加devServer配置,包括设置disableHostCheck为true,指定端口号为82,并配置proxy代理。代理的目标地址应该是'http://api-dashboard.yudao.iocoder.cn',并设置changeOrigin为true,pathRewrite将'/api'替换为'/'。
2. 确保在项目中使用axios发送请求时,将baseURL设置为'/api'。
通过以上配置,应该能够解决CORS问题,并成功发送请求到目标地址。
#### 引用[.reference_title]
- *1* [前后端分离跨域问题Access to XMLHttpRequest at ‘http://localhos...has been blocked by CORS policy: ...](https://blog.csdn.net/qq_42416602/article/details/121731774)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Vue代理问题: Access to XMLHttpRequest at ‘http://192.168.1.105:9999/admin/tenant/list‘ from ...](https://blog.csdn.net/q879936814/article/details/115507319)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]