Angularjs http.get带参数发送单词查询
这是我的第一个问题,请原谅我的英语 我正在使用angular,我正在使用http.post for all(获取和发布信息)。这是错误的,我开始使用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
$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,如果您能将代码放入工厂,我们可以提供帮助