javascript - $_POST 未读取 Axios 发布参数

标签 javascript php reactjs axios

所以我有这个代码:

axios({
    method: 'post',
    url,
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    data: {
        json,
        type,
    }   
})  

最初我有正常的 axios.post 但我改成这个是因为我认为这可能是一个标题问题。但是,我的 $_REQUEST$_POST 中仍然没有检测到任何内容。但是,它在 file_get_contents("php://input") 中接收数据。

知道有什么问题吗?

编辑

好的,我想我知道出了什么问题。它将它作为一个 json 对象发布,因此它只能在 php://input 中读取。如何在axios中将其改为普通字符串?

最佳答案

来自 the documentation (我没有保留引用 Material 中的链接):

Using application/x-www-form-urlencoded format

By default, axios serializes JavaScript objects to JSON.

PHP 不支持将 JSON 作为填充 $_POST 的数据格式。

它只支持机器可处理的格式natively supported by HTML forms :

  • application/x-www-form-urlencoded
  • 多部分/表单数据

To send data in the application/x-www-form-urlencoded format instead, you can use one of the following options.

Browser

In a browser, you can use the URLSearchParams API as follows:

var params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params); 

Note that URLSearchParams is not supported by all browsers, but there is a polyfill available (make sure to polyfill the global environment).

Alternatively, you can encode data using the qs library:

var qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));

或者您可以自定义您的 PHP,以便它可以按照 this answer 处理 JSON关于另一个问题。

关于javascript - $_POST 未读取 Axios 发布参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457181/

相关文章:

php - 没有 iFrame 或 flash 引擎的 ajax php 文件上传

javascript - React-Chat-Widget Prop 未转发

javascript - electronics-react-boilerplate - 路线变化和状态

javascript - 将angular模板编译成html的正确方法,将结果转换成字符串

javascript - 来自 npm 的 React 组件中的 Redux 会与容器的 Redux 冲突吗?

javascript - 在CSS/JavaScript中,这个图标/字体插件是如何实现的?

php - 在一行中运行多个 inkscape 命令

php - Zend Framework 2 - 显示数据库的内容

node.js - 如何使用 React-Helmet 优化 SPA 的 SEO?

javascript - ReactJs 与 ChartJs 中的数据可视化