【发布时间】:2026-01-26 01:20:08
【问题描述】:
相关question.
我正在尝试向 API 发送 POST 请求以进行测试。我不断得到
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“{我的本地 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,我从中发送此请求。我不断收到此错误。
【问题讨论】:
-
服务器没有发回所需的 CORS 标头。您是否通过
file://URL 加载您的页面?如果是这样,浏览器会将页面和http://localhost服务器视为两个不同的域。 -
是的,我在链接的问题中读到了。这就是为什么我运行一个 simpleHTTPServer 并从那里打开运行 javascript 的 html 文件。
-
了解就浏览器而言,必须匹配的是“http”部分(“http”或“https”),域letter for letter,和端口号。与字符串比较时,它们必须相同,而不仅仅是相同的 IP 地址。
-
目前还不完全清楚发生了什么。该 ajax 请求是通过包含页面从您的浏览器发生的吗?还是它以某种方式在服务器中的 Python 下运行?
标签: javascript xmlhttprequest cors httprequest