使用params的http.get发送单词查询

时间:2017-01-24 19:01:27

标签: angularjs

这是我的第一个问题,请原谅我的英语。

我正在使用angular,我正在使用http.post(获取和发布信息)。这是怎么回事,我开始使用http.get来请求数据库中的记录。

我正在使用它:

$http.get("empresa.php",{params:{id:-1,action:"get"}})

我希望收到这样的内容:

empresa.php?id=-1&action=get

但不行,因为发送:

empresa.php?query=%7B%22id%22:-1,%22action%22:%22get%22%7D
你可以帮帮我吗?

查询并不是我所希望的。

我正在使用Angularjs 1.5.8

的 Te工厂是这样的:

app.factory("Data", ['$http',
    function($http, ) { // This service connects to our REST API

        var serviceBase = 'service/';

        var obj = {};

        obj.get = function(q,p) {
            console.log(p);
            return $http.get(serviceBase + q + ".php",{params:p}).then(function (results) {
                return results.data;
            });
        };
        obj.post = function(q, object) {
            return $http.post(serviceBase + q + ".php", object).then(function(results) {
                return results.data;
            });
        };
        obj.put = function(q, object) {
            return $http.put(serviceBase + q + ".php", object).then(function(results) {
                return results.data;
            });
        };
        obj.delete = function(q) {
            return $http.delete(serviceBase + q + ".php").then(function(results) {
                return results.data;
            });
        };

        return obj;
    }
]);

对于POST工作正常,但对于GET不起作用:(

新修改

Here you can see how is that I have the code, how use and the response

编辑 - 完成

最后,我解决了使用 $ httpParamSerializer 序列化json对象并将其直接调用 empresa.php

感谢所有人的帮助!!!

2 个答案:

答案 0 :(得分:1)

使用$httpParamSerializer为您构建网址查询。

var params = {id:-1,action:"get"};
var query = $httpParamSerializer(params);
$http.get("empresa.php?" + query);

答案 1 :(得分:0)

尽量不要使用$ http.get快捷方式。

$http({
    url: "empresa.php", 
    method: "GET",
    params: {id:-1, action:"get"}
});

否则你可以自己创建网址。

$http.get('empresa.php?id=' + -1 + '&action=' + 'get');