鍍金池/ 問答/PHP  HTML/ axios post傳值給php無法獲取,值為空

axios post傳值給php無法獲取,值為空

vue

el:'#app',
data: {
    message: 'Hello Vue!'
},
mounted(){

    var foot_data = new URLSearchParams();
    foot_data.append('number1','111');
    foot_data.append('number2','222');

    axios.post('http://localhost/demo.php',foot_data).then(res=> {
        console.log(res);
    });
}

demo.php

$str = $_POST['number2'];
var_dump($str);
var_dump($_POST);

控制臺(tái)已經(jīng)把數(shù)據(jù)返回回來了
圖片描述
圖片描述

但是demo.php卻沒有接收到該值

Notice: Undefined index: number2 in E:vuedemodemo.php on line 9
NULL array(0) { }

想知道是哪個(gè)地方出錯(cuò)了,求解。。。。
圖片描述

我再補(bǔ)張圖,這是php返回的錯(cuò)誤

回答
編輯回答
離觴

axios post的data選項(xiàng)如果設(shè)置成了對象模式{username:'xxx',password:231}就都會(huì)以json數(shù)據(jù)的形式發(fā)送給后端。如果php要用$_POST獲取數(shù)據(jù)的話。data選項(xiàng)要設(shè)置為key,value形式
axios({

url:'http://example.com',
method: 'POST',
data: 'useranem=xxx&pass=1234'

})

2017年10月29日 20:27
編輯回答
冷咖啡

你都post了, 為什么還要用 URLSearchParams ? 直接傳, 然后用 qs.stringify 試一下

axios.post('http://localhost/demo.php',qs.stringify({number1:222, number2:222})).then(res=> {
        console.log(res);
    });
2017年11月6日 03:11
編輯回答
萢萢糖

安裝qs ,數(shù)據(jù)轉(zhuǎn)化為qs.stringtry({}),就可以了

2017年1月9日 15:47
編輯回答
風(fēng)畔

我就知道是這樣。。。

$_POST 變量用于收集來自 method="post" 的表單中的值

demo.php里的數(shù)據(jù)是要前端POST提交的,沒有前端提交數(shù)據(jù)直接訪問文件當(dāng)然沒數(shù)據(jù)。
直接訪問php,$_POST為空,因?yàn)闆]有提交的數(shù)據(jù);$_POST為空,$_POST['number2']自然就報(bào)錯(cuò)。

而在
圖片描述

里,你是提交數(shù)據(jù)到了demo.php,所以php正常輸出了

就像抽煙,你需要煙(demo.php)和打火機(jī)(前端POST提交數(shù)據(jù)),你只有煙(demo.php)有什么用


???

但是demo.php卻沒有接收到該值

是什么意思?你不是都打印出來了嗎?
圖片描述
這就是php打印的啊

還有你報(bào)錯(cuò)的截圖看看

2018年2月19日 18:38
編輯回答
忠妾

我碰到的問題跟你這個(gè)相似
我用的是

let fd=new FormData()
fd.append('a','xxxx')
fd.append('b','xxx')
    
2017年6月10日 03:06