提问人:Kedar 提问时间:7/14/2023 最后编辑:OlivierKedar 更新时间:7/24/2023 访问量:192
从 AJAX 调用 API 时出现 CORS 问题
Getting CORS issue in API calling from AJAX
问:
我在使用标头从 Ajax 调用 API 时遇到 CORS 问题。Content-Security-Policy":"frame-ancestors 'none'
我的 API 是用 Java Spring Boot 构建的。API 服务器已配置了 。如果我删除,API 工作正常。Access-Control-Allow-Origin : *
Content-Security-Policy":"frame-ancestors 'none'
以下是要求:
$.ajax({url: "https://****.com/api/v2/login",
type: 'post',
data: JSON.stringify(domain),
headers: {
"x-dreamfactory-api-key":'*******',
"x-frame-options":'deny',
"Content-Security-Policy":"frame-ancestors 'none'",
"pragma":'no-cache',
"sec-fetch-mode":'cors',
"Referer":'https://****.com',
"origin":'https://****.com',
"sec-fetch-site":'same-site',
"sec-fetch-dest":'empty',
"Content-Type":'application/json'
},
dataType: 'json',
success: function (data) {
console.log(JSON.stringify(data));
}
});
我的 API 配置如下:WebMVCConfigurationSupport
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/v2/**").allowedMethods("PATCH","GET", "POST", "OPTIONS","PUT", "DELETE").allowedOrigins("*")
.allowedHeaders("*").allowCredentials(true);
}
答:
1赞
Olivier
7/17/2023
#1
Content-Security-Policy
是一个响应标头:
HTTP Content-Security-Policy 响应标头允许网站 管理员控制允许用户代理加载的资源 对于给定的页面。
因此,在 AJAX 请求中发送它是没有意义的。
评论
0赞
Kedar
7/17/2023
谢谢你的回答。但是,如果它没有任何意义,那么为什么它会影响响应呢?
1赞
jccampanero
7/18/2023
请考虑查看您在浏览器中实际收到的响应,可能是 Spring Boot 在接收标头时返回某种错误,可能是白标页面或类似内容:这可能会导致您的 CORS 问题(服务器为您的 JQuery AJAX 请求返回不适当的资源)。原因可能是答案中@Olivier暴露的原因,无需在请求中包含标头,而是应由服务器提供的响应标头。Content-Security-Header
评论