【问题标题】:400 error when send JSON data to WordPress Admin Ajax with Fetch API使用 Fetch API 将 JSON 数据发送到 WordPress Admin Ajax 时出现 400 错误
【发布时间】:2021-10-17 09:20:36
【问题描述】:

我将 Fetch Api 与 WordPress admin-ajax.php 一起使用。

  1. 以 URLSearchParams 的形式发送数据。工作正常。
    let data = {
        action: 'my_action',
    }
    
    fetch( ajaxurl, {
        method: 'POST',
        credentials: 'same-origin',
        body: new URLSearchParams(data)
    });
  1. 以 FormData 形式发送数据。工作正常。
    let data = New FormData();
    data.append('action', 'my-action');
    
    fetch( ajaxurl, {
        method: 'POST',
        credentials: 'same-origin',
        body: data
    });
  1. 以 JSON 格式发送数据。它不起作用,400 错误。
    let data = {
        action: 'my_action',
    }
    
    fetch( ajaxurl, {
        method: 'POST',
        credentials: 'same-origin',
        headers: {
          'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    });

我很好奇为什么会出现 400 错误?有什么我想念的吗?

【问题讨论】:

  • 我也参与其中。你解决了吗?

标签: javascript php wordpress


【解决方案1】:

如下更改您的获取登录名并尝试。由于您指定 'Content-Type' : 'json' ,因此无需对 json 进行字符串化。

    fetch( ajaxurl, {
        method: 'POST',
        credentials: 'same-origin',
        headers: {
          'Content-Type': 'application/json'
        },
        body: data
    });

【讨论】:

  • 没有。我们确实需要对 json 进行字符串化,因为我们指定了 'Content-Type': 'application/json'
猜你喜欢
  • 2020-12-08
  • 1970-01-01
  • 2017-08-17
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 2018-11-02
相关资源
最近更新 更多