javascript - 无法使用 fetch : React 发送 POST 数据

标签 javascript php cors fetch

我正在尝试使用 javascript fetch API 将 POST 数据发送到不同 origin 上的 PHP 脚本在 react 。我有一个 CORS 策略错误,如下所示:

enter image description here

为了解决上述问题,我将这两行添加到我的 PHP 脚本中:

header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET, POST, PUT');

但我仍然无法解决我的问题。未发送 POST 数据。

JS代码:

fetch('http://localhost/articles-mania/publish.php', {
    method: 'POST',
    body: data,  // JSON Object 
    headers : { 
        'Content-Type': 'application/json'
    }
})
.then((res) => res.json())
.then((response) => {
    this.setState({
      responseMsg: response.msg
    })
})

PHP 脚本:

header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET, POST, PUT');

$title = $_POST['article_title'];
echo json_encode(array('msg' => $title));

有什么想法吗?

最佳答案

也许尝试允许 OPTIONS 方法,因为它用于执行飞行前请求...

改变这个:

header('Access-Control-Allow-Methods: GET, POST, PUT');

为此:

header('Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS');

关于javascript - 无法使用 fetch : React 发送 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51263645/

相关文章:

javascript - 当我在文本输入中写入时,在下拉列表中实时选择选项

javascript - (React js) 音频 src 在 setState 上更新,但音频播放没有改变

php - 在循环中将 POST 值分配给数组并将数组放入数据库

php - symfony 2创建自定义表单如何获取表单自定义元素?

javascript - Axios CORS 问题与 Github oauth 未获取访问 token

javascript 用户选择突出显示

javascript - 正则表达式多次替换组

php - Amazon S3 如何验证访问 key ID 和 secret 访问 key ? PHP SDK v3

jquery - 是否有一个 jQuery 解决方案,在可用时使用 CORS,并在 MSIE 上使用 XDomainRequest,在浏览器上使用 niether 时使用 JSONP?

javascript - 从 Angular JS 的 Controller 启用 CORS