簡體   English   中英

Angularjs $ http發布沒有傳遞參數?

[英]Angularjs $http post didn't pass param?

我已經調試了幾個小時。 試圖設置標題等,但沒有運氣!

我的控制器

 $http({
    url: 'http://myphp.php/api.php',
    method: "POST",
    data: {'wtf':'test'}
})
.then(function(response) {
        console.log(response);
    }, 
    function(response) { // optional
        // failed
    }
);

和我的PHP

<?php
echo "test"; 
echo $_POST["wtf"];
?>

在我的網絡標簽中,它是這樣的

在此處輸入圖片說明

不知道怎么了,男人,真的很累,我被困了幾個小時! 為什么我的$ _POST ['wtf]沒有回顯?

$ http在請求主體中將數據序列化為JSON,但是PHP的$ _POST正在從發布的表單數據中尋找鍵/值。 這是兩種不同的發布數據的機制,因此您需要選擇一種機制,並在兩側都使用該機制。

您可以通過以下兩種方法解決此問題:

  1. 在您的PHP代碼中,將請求正文解析為JSON數據,然后使用該對象檢索您的數據。 以獲取更多信息的StackOverflow問題。

  2. 修改$ http請求以將數據發布為表單數據。 以獲取更多信息的StackOverflow問題。

$ http.post(默認情況下)不會將數據作為鍵/值對發送。 它作為發布請求發送。

因此,在您的php腳本中,您應該像這樣使用它:

$input = file_get_contents('php://input');

然后像這樣解析它:

$data = json_decode($input, true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM