Nia*_*all 2 javascript php reactjs redux axios
之前我问过这个问题,但是无法得到答案.我能够使用方法:'得到'如下,让它工作,所以它没关系,但这次我需要使用post.在一个不同的项目中(使用react,redux,php,webpack,xampp),同样的问题已经重新出现,我正试图弄明白.所以这里是:
register.php
echo $_GET['task'];
Run Code Online (Sandbox Code Playgroud)
index.js
const values = {task: 'doSomething', username: 'username'}
axios({
url: "./server/register.php",
timeout: 20000,
method: 'get',
params: values
}).then(function(response){console.log(response.data)})
Run Code Online (Sandbox Code Playgroud)
当我执行上述操作时,一切正常,数据将记录为"doSomething".但是,当我尝试使用axios({method:'POST'})并将php更改为$ _POST ['task']时,我收到一条错误消息,说$ _POST ['task']未定义如下:
index.js
axios({
url: "/projects/myProject/server/register.php",
method: 'post',
data: values
}).then(function(response){console.log(response.data)})
Run Code Online (Sandbox Code Playgroud)
register.php
echo $_POST['task'];
Run Code Online (Sandbox Code Playgroud)
注意:未定义的索引:任务
当我使用axios.post()尝试这个时,我遇到了完全相同的问题.我想在这里使用帖子请求.任何人都可以为我阐明这一点吗?
好吧,经过相当多的刮擦我的头后,我找到了答案.在我可以访问任何POST数据之前,必须添加PHP这一行:
$_POST = json_decode(file_get_contents('php://input'), true);
echo $_POST['task'];
Run Code Online (Sandbox Code Playgroud)
根据我的理解,从axios输入的数据是JSON,所以我们必须使用file_get_contents()以JSON编码的字符串返回它,然后使用json_decode将其转换为来自JSON编码字符串的php变量.希望这有助于其他人.谢谢.
| 归档时间: |
|
| 查看次数: |
2103 次 |
| 最近记录: |