has been blocked by CORS policy: Method PUT/DELETE is not allowed by Access-Control-Allow-Methods in

问题描述:当前位置需要向 B 公司某个接口对接,更改数据,但是他的请求方式是 PUT/DELETE ,然后就出现了如下这个报错:

  跟后端沟通,后端说设置了如下允许所有的请求方式,但是还是跨域报错

Access-Control-Allow-Methods: *

解决方式:后端把 Access-Control-Allow-Methods 重新设置了下,原因应该是这个字段在简单请求的的时候比如get/post用*或者不写都可以,但是当使用 PUT/DELETE 请求的时候,必须明确规定写出来

Access-Control-Allow-Methods: GET,POST,OPTIONS,PUT,DELETE

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CORS(跨源资源共享)是一种安全机制,用于限制从一个源加载的资源如何与来自另一个源的资源进行交互。当浏览器检测到请求的源、协议或端口与当前文档不同时,就会发出跨域请求。在这种情况下,服务器必须在响应中添加特定的CORS头部,以允许浏览器访问资源。如果请求头部中包含未经允许的字段,服务器将返回一个CORS错误,其中包含“has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.”的错误消息。 解决这个问题的方法是在服务器端添加允许请求头部的字段。在引用中提供了一个PHP的例子,其中添加了三个头部:Access-Control-Allow-Origin、Access-Control-Allow-Headers和Access-Control-Request-Headers。Access-Control-Allow-Origin头部指定允许访问资源的源,Access-Control-Allow-Headers头部指定允许的请求头部字段,Access-Control-Request-Headers头部指定浏览器在实际请求中发送的请求头部字段。 如果你使用的是axios或ajax进行请求,可以在请求头部中添加Authorization字段,如下所示: ```javascript axios({ method: 'get', url: 'http://example.com', headers: { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' } }) ``` 在这个例子中,我们添加了Authorization和Content-Type字段到请求头部中。如果服务器允许这些字段,请求将被成功处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值