目前,我将数据存储在cookie中,并通过ajax调用将其传递给服务器获取数据。
所以,目前我的webapp特定于单个客户端机器,而且url不可共享。所以我想传递请求参数来动态生成url以从我的节点服务器获取和更新数据。
如何生成类似下面的链接,并将其作为$ http服务的一部分传递给angular来从node express获取数据。
当前代码:
AngularJS $ http.post('/ getPropertyData',data).success(function(data,status){ $ scope.parseData(数据); }); .state('listProperties',{ 网址: '/ listProperties', templateUrl:'list.html', controller:'listControl' })
节点后端:
router.post('/',function(req,res) {
var finalResp = [];
var asyncIterator = 0;
MongoClient.connect(url, function(err, db) {
...........
function sendResponse(asyncIterator,length,finalResp,db) {
if(asyncIterator==length) {
res.send(finalResp);
db.close();
}
}
}
答案 0 :(得分:0)
当您将数据作为第二个参数传递给$http.post
angular时,会将该JS数据放入请求的有效负载/正文中,而不是在URL中对其进行编码。因此,您可以选择从节点端的正文中读取参数,或者更改$ http post请求以使用URL查询参数,而不是数据请求的正文/有效负载。
AngularJS - Any way for $http.post to send request parameters instead of JSON?
这样的事情应该有效:
$http.post('/getPropertyData',$httpParamSerializer(data))
angular.module('myApp', []).run(function($http, $httpParamSerializer){
var data = {some:'stuff', in:'here'}
console.log($httpParamSerializer(data))
//$http.post('/getPropertyData',$httpParamSerializer(data)) actually use this line
})

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<div ng-app="myApp">
</div>
&#13;