出于培训目的,我正在构建一个API。我现在必须发送包含信息的POST请求。我使用的是React JS和PHP,问题在于每次我发送请求时,CORS错误仍会显示在浏览器上。
我发送POST的JS文件是我更改了URL,因为它在我的个人服务器上:
axios.post('https://myurl/api/book/create.php', {
data: JSON.stringify(values, 0, 2)
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
在服务器端,我有以下内容
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
有了邮递员,请求可以顺利进行,但是每次都通过浏览器发送
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://myurl/api/book/create.php. (Reason: CORS request did not succeed
答案 0 :(得分:0)
请确保您在后端服务器中允许CORS。然后,您需要像下面的示例一样为axios发送标头
axios.defaults.headers.post['Content-Type'] = 'application/json';
axios.defaults.withCredentials = true;
axios.defaults.crossDomain = true;
(或将其设置在数据后的第三个参数中)
答案 1 :(得分:-1)
对于所有请求,您都必须使用localhost
或127.0.0.1
。通常,在您的代码中,您应该通过仅将URI附加到当前主机上来对服务器进行调用,而不必在URI字符串中重新添加主机和端口。