gpt4 book ai didi

javascript - Axios POST 返回 "Network Error"即使状态为 200 并且有响应

转载 作者:搜寻专家 更新时间:2023-10-30 22:46:49 28 4
gpt4 key购买 nike

<分区>

我正在使用带有 Axios 的 Vue JS 2.5:

"vue": "^2.5.17",
"vue-axios": "^2.1.4",
"axios": "^0.18.0",

我正在尝试像这样进行 POST 调用:

const data = querystring.stringify({
'email': email,
'password': password,
'crossDomain': true, //optional, added by me to test if it helps but it doesn't help
});

var axiosConfig = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
// "Access-Control-Allow-Origin": "*",
'Accept': '*',
}
};

axios.post(url, data, axiosConfig)
.then((response) => {
console.log('response');
console.log(response);
})
.catch((error) => {
console.log('error');
console.log(error);
});

我也尝试过不使用“axiosConfig”参数。但每次它进入捕获时,都会显示消息:Error: Network Error

在浏览器的网络选项卡中,我得到一个 200 状态和一个良好的响应(带有有效的 json),它基本上可以工作,但 Axios 返回错误并且没有响应。

控制台还输出此警告:Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://url/api/page. (原因:缺少 CORS header “Access-Control-Allow-Origin”)。

我尝试从 Postman 调用同样的电话,效果很好。不同之处在于 Axios 使用我的 localhost:8080 发送 header :“Origin”和“Referrer”,这与我调用的 API url 不同。

如何从 axios 进行此调用而不会出现此错误?谢谢。

编辑

如果我使用 PHP,它会起作用:

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://myurl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "------WebKitFormBoundaryTrZu0gW\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\nemail\r\n------WebKitFormBoundaryTrZu0gW\r\nContent-Disposition: form-data; name=\"password\"\r\n\r\npassword\r\n------WebKitFormBoundaryTrZu0gW--",
CURLOPT_HTTPHEADER => array(
"Postman-Token: 62ad07e5",
"cache-control: no-cache",
"content-type: multipart/form-data; boundary=----WebKitFormBoundaryTrZu0gW",
"email: email",
"password: password"
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}

我只是复制粘贴了生成的 Postman 调用,并从不同的页面尝试了它,效果很好。所以这不是 CORS 问题,这是我的 Javascript 调用的问题。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com