如何解决我可以在axios上使用HTTP COPY Request吗?
要与CouchDB实例进行交互,我需要发送HTTP“ COPY”请求。 (非标准的http请求)。
如果我使用邮递员发送请求,它将正常工作。但是在我的Web应用程序中,我使用axios,并且axios发送COPY请求会导致错误。 (奇怪的是,CORS错误)。
我以这种方式使用axios:
axios(
{ method:'copy',url: '....',...
}
)
我找不到有关HTTP“ COPY”请求的很多信息,我想知道axios甚至浏览器是否可能无法发送COPY请求?
任何小费都很棒!谢谢。
控制台:
Access to XMLHttpRequest at 'http://localhost:5984/somedoc/505282119b93327fa4fecbef68026db4_cp' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
好的,现在我知道有一个预检请求,浏览器说预检以某种方式失败了。
我看到“不允许使用方法”,但是“允许”下面的内容是“复制”。
我不明白我在axios中的请求出了什么问题,而在Postman中却可以正常工作。
(顺便说一下,所有其他请求:获取,放置,删除..在axios中工作)
这就是我在Chrome浏览器中看到的内容
General:
Request URL: http://localhost:5984/somedoc/505282119b93327fa4fecbef68026db4_cp
Request Method: OPTIONS
Status Code: 405 Method Not Allowed
Remote Address: 127.0.0.1:5984
Referrer Policy: no-referrer-when-downgrade
Response Headers:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:8080
Access-Control-Expose-Headers: content-type,cache-control,accept-ranges,etag,server,x-couch-request-id,x-couch-update-newrev,x-couchdb-body-time
Allow: DELETE,GET,HEAD,POST,PUT,COPY
Cache-Control: must-revalidate
Content-Length: 85
Content-Type: application/json
Date: Wed,09 Sep 2020 12:36:30 GMT
Server: CouchDB/2.3.1 (Erlang OTP/19)
X-Couch-Request-ID: 61447fcae4
X-CouchDB-Body-Time: 0
Request Headers:
Accept: */*
Accept-Encoding: gzip,deflate,br
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7,la;q=0.6
Access-Control-Request-Headers: authorization,content-type,destination
Access-Control-Request-Method: COPY
Cache-Control: no-cache
Connection: keep-alive
Host: localhost:5984
Origin: http://localhost:8080
Pragma: no-cache
Referer: http://localhost:8080/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/85.0.4183.83 Safari/537.36
解决方法
我想我现在明白了
将ouchDB用作HTTP服务器时出现问题。 Couch不知道OPTION请求,因此CORS预检失败。
相同的COPY请求在Postman中起作用,因为Postman不在乎CORS,也不做预选请求。
解决方案似乎在couchdb前面有一个代理...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。