请求被 CORS 阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态

Posted

技术标签:

【中文标题】请求被 CORS 阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态【英文标题】:request as been blocked by CORS:Response to preflight request doesn't pass access control check: It does not have HTTP ok status 【发布时间】:2019-08-09 02:57:56 【问题描述】:

我正在做这个请求:

 saveNewPermissions=(newGroupPermissions,curentGroupId)=>
    window.alert(this.baseUrl+"/addPermission/group/"+curentGroupId)
    return fetch(this.baseUrl+"/addPermission/group/"+curentGroupId, 
        method: 'PUT',
        headers: 
            'Accept': 'application/json',
            'Content-Type': 'application/json',
        ,
        body: JSON.stringify(
            permissions: newGroupPermissions
        )
    )

但是执行该方法时出现以下错误: CORS 策略已阻止从源“http://localhost:3000”获取“http://localhost:8083/uaa/addPermission/group/2”的访问权限:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。 我已经有 CORS Chrome 插件,我可以执行其他类型的请求,例如帖子和获取,并且接收请求的方法具有 @CrossOrigin(allowCredentials = "true")。该方法在 java 中使用 springboot。

【问题讨论】:

你的服务器api必须启用CORS,它与你的客户端或浏览器无关 【参考方案1】:

我使用带有默认参数的 @CrossOrigin 只是 get 和 post,这就是为什么 put 不起作用,你需要 put:

@CrossOrigin(allowCredentials = "true",methods = RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT)

【讨论】:

以上是关于请求被 CORS 阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态的主要内容,如果未能解决你的问题,请参考以下文章

被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP OK 状态

Laravel 7 CORS:被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”

被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头

来源已被 CORS 策略阻止 对预检请求的响应未通过访问控制检查

CORS 策略已阻止从源“null”访问 XMLHttpRequest:对预检请求的响应未通过访问控制 [重复]

domain.com 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态