从 AJAX 调用 API 时出现 CORS 问题

Getting CORS issue in API calling from AJAX

提问人:Kedar 提问时间:7/14/2023 最后编辑:OlivierKedar 更新时间:7/24/2023 访问量:192

问:

我在使用标头从 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);
} 
java jquery ajax spring-boot 内容安全策略

评论

1赞 Black Bear 7/14/2023
请提供更多代码示例(扩展 WebSecurityConfigurerAdapter 的类、控制器等)
0赞 Kedar 7/14/2023
@ShavarshShahoyan编辑了我的问题。

答:

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