相关question。
我正在尝试向API发送POST请求以进行测试。我一直在
对预检请求的响应没有通过访问控制检查:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。来源' {我的本地IP}'因此不允许访问。响应的HTTP状态代码为403。
以下是相关代码:
function searchSimilar2(){
var base_url = "{request url}"
var send_url = base_url + "{inline arguments}"
var params = '{"size":10, "mediaUrl":"https://cdn.yoox.biz/39/39706632kh_20_f.jpg2"}'
function func(){
console.log(this.response)
}
var hReq = new XMLHttpRequest();
hReq.open('POST', send_url)
hReq.setRequestHeader('Content-Type', 'application/json')
hReq.onload = func;
hReq.send(params)
我省略了请求url和参数,因为我知道问题不在于它们。
根据链接的问题答案,我没有使用JQuery,我正在运行一个python SimpleHTTPServer,我发送此请求。我一直收到这个错误。
答案 0 :(得分:2)
您需要在SimpleHttpServer响应上设置“Access-Control-Allow-Origin”标头值。标头值需要包含请求应用程序的主机名或IP。或者,您可以设置“*”通配符值以允许所有来源,但是如果您确实想要允许所有来源,那么您应该这样做,因为它会创建一些XSS漏洞:
//allow single origin
self.send_header('Access-Control-Allow-Origin', 'http://yourapp.com')
self.end_headers()
-OR -
//allow all origins
self.send_header('Access-Control-Allow-Origin', '*')
self.end_headers()
答案 1 :(得分:0)
通过更改服务器的设置,我可以使用它。
请求的部分网址是“v1 / api”,由于某种原因将其切换为“api / v1”,一切正常。