Angularjs http.get带参数发送单词查询

Angularjs http.get带参数发送单词查询,angularjs,Angularjs,这是我的第一个问题,请原谅我的英语 我正在使用angular,我正在使用http.post for all(获取和发布信息)。这是错误的,我开始使用http.get从数据库请求记录 我用这个: $http.get("empresa.php",{params:{id:-1,action:"get"}}) 我希望收到这样的消息: empresa.php?id=-1&action=get 但不起作用,因为发送此: empresa.php?query=%7B%22id%22:-1,%22ac

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

我正在使用angular,我正在使用http.post for all(获取和发布信息)。这是错误的,我开始使用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

版本 工厂是这样的:

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;
    }
]);
对于后期工作,可以,但对于GET不起作用:(

新编辑

编辑-定稿 最后,我决定使用$httpParamSerializer序列化json对象,并将其直接调用empresa.php


感谢所有人的帮助!!!

尝试不要使用$http.get快捷方式方法

$http({
    url: "empresa.php", 
    method: "GET",
    params: {id:-1, action:"get"}
});
或者您可以自己创建url

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

使用
$httpParamSerializer
为您构建url查询

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

您想知道如何在不将字符转换为百分比编码的情况下发送get查询吗?是的,我就是这么想的。@nckeThanks要知道答案,请更改大字符的shorcut方式,但仍然不起作用。最后我使用了put“manual”查询字符串中的参数和工作。但我不知道为什么在其他项目中工作良好。它是同一台服务器,对http.get的调用在工厂中(在两个项目中)谢谢你的回答。http.get在一家工厂里,我不知道如何在所有项目中使用它$httpParamSerializer@DanielB,如果您能将代码放入工厂,我们可以提供帮助