美好的一天,
我是angularjs的新手,并开始主要通过网络服务提取数据。
我的网络服务从我的数据库中返回纬度和经度列表
这是代码
[WebMethod]
public List<friendlyforces> get_friendly(string regionid , string type)
{
List<friendlyforces> friendlies = new List<friendlyforces>();
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@regid", regionid));
parameters.Add(new SqlParameter("@type", type));
SqlDataReader readers = SqlHelper.ExecuteReader(connection, "friendlyforces", parameters.ToArray());
while (readers.Read())
{
friendlies.Add(new friendlyforces());
friendlies[(friendlies.Count - 1)].unit_name = readers["unit_name"].ToString();
friendlies[(friendlies.Count - 1)].address = readers["adrress"].ToString();
friendlies[(friendlies.Count - 1)].latitude = readers["latitude"].ToString();
friendlies[(friendlies.Count - 1)].longitude = readers["longitude"].ToString();
friendlies[(friendlies.Count - 1)].icon = readers["icon"].ToString();
}
return friendlies;
}
现在在我的angularjs启用页面上我试图显示Web服务给出的数据这里是代码
var app = angular.module('Services', []);
app.controller('latController', function ($scope, $http) {
var url = "Services/datapull.asmx/get_friendly";
$http({
method: 'POST',
url: url,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: JSON.stringify({ regionid: "7", type: "pnp" })
}).success(function (data) {
var myjson = JSON.parse(data);
$scope.locations = JSON.parse(myjson);
});
})
现在当调用Web服务时,它会返回一个错误,指出我错过了我尝试的regionid的参数$.param : ({regionid : "7" , type : "pnp" }) and
param:JSON.stringify({regionid:&#34; 7&#34;,type: &#34; PNP&#34;})
但它重新导致缺少相同的错误参数
有什么建议吗?
谢谢
答案 0 :(得分:0)
根据您提供的内容类型'Content-Type': 'application/x-www-form-urlencoded'
,您似乎希望将数据作为url param发送。
然而,
默认情况下,$ http服务将通过将数据序列化为JSON来转换传出请求,然后使用内容类型“application / json”发布它。
尝试在您的请求中添加transformRequest
。
$http({
method: 'POST',
url: url,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: { regionid: "7", type: "pnp" }
}).success(function () {});