Ajax从角js请求php

时间:2015-06-28 04:06:37

标签: php ajax angularjs

我正在尝试从角度js向php发出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 个答案:

答案 0 :(得分: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" })
}

source source