0

I am trying make an ajax request to php from angular js. But I am not getting the data I have sent. Please let me know where I am going wrong.

The following is the ajax call.

<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>

The following is the php code.

<?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));
?>

I have tried this using $_REQUEST also but it didnot work.

1 Answer 1

1

In your angular code, you need to encode the parameter data as a string like lang=fr instead of {lang: 'fr'}.

Try using $.param(obj) or $.param({lang: "fr"}) to convert it like this:

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.