2015-06-28 99 views
0

我想從角js到php做ajax請求。但是我沒有收到我發送的數據。請讓我知道我出錯的地方。從角js到Ajax請求

以下是ajax調用。

<script type="text/javascript"> 

    angular.module('app', []).controller("MyController", function($scope, $http) { 

    var req = { 
     method: 'POST', 
     url: 'pujastrail/www/rest/get.php', 
     headers: { 
      'Content-Type': "application/x-www-form-urlencoded; charset=utf-8" 
     }, 
     data: { lang: "fr" } 
    } 
    $http(req).success(function(data, status, headers, config){alert("done"+data);}).error(function(data, status, headers, config){alert("error"+res);}); 

     }); 
</script> 

以下是php代碼。

<?php 
    if (isset($_POST['lang']) && !empty($_POST['lang'])) { 
     $lang = $_POST['lang'];//this needs to be sent back to js file 
    } else { 
     $lang = "eRROR";// but this is being sent back to the js file 
    } 

    echo (json_encode($lang)); 
?> 

我已經嘗試過使用$ _REQUEST,但它沒有工作。

回答

1

在您的角碼中,您需要將參數數據編碼爲字符串,如lang=fr而不是{lang: 'fr'}

嘗試使用$.param(obj)$.param({lang: "fr"})將其轉換是這樣的:

var req = { 
    method: 'POST', 
    url: 'pujastrail/www/rest/get.php', 
    headers: { 
     'Content-Type': "application/x-www-form-urlencoded; charset=utf-8" 
    }, 
    data: $.param({ lang: "fr" }) 
} 

sourcesource

+0

真棒豬頭...非常感謝你... –

+0

感謝您接受,好運與您的項目! –