[英]Angular $http get method does not send correct data to server
我是新手。 我使用angular.js和webapi。 我有如下要求。
[HttpGet]
public RecordDTO[] GetMyFiles(UserClass usr,int uId,int fId)
{
}
我的webapi呼叫就是這樣。 UserClass參數是一個具有兩個字符串字段(名稱,密碼)的類。 我的角度代碼如下所示。
$scope.GetMyFiles= function () {
var user = { Name:'xx',Password:'xx' };
var data = {usr:user, uId: 11, fId: 56};
$http({
url:"../api/Home/GetMyFiles",
method: 'GET',
//headers: { 'Content-Type': 'application/json' },
params: data
})
.success(function (data) {
alert("OK");
})
.error(function (data) {
alert("error");
});
};
我的問題是UserClass為null。 它使用uId和fId參數,但第一個參數為null。 我該如何糾正? 提前致謝。
由於$http
的默認content-type
是JSON
,請檢查您的服務正在參加。 如果是JSON
,則應對數據進行stringify
處理以將其傳遞到webapi:
params: JSON.stringify(data)
如果需要將數據發送到服務器,則應進行$http.post
調用。 我認為是問題所在,因為您未指定標題的content-type
。 請嘗試以下操作:
$http.post('/api/Home/GetMyFiles', data , {
headers: { 'Content-Type': 'application/x-www-form-urlencoded;' }
}
).success(function(data) })
.error(function(err){});
告訴我它是否有效,如果您需要任何幫助,請告訴我。 編碼愉快。 ;)
將$http
方法從GET
更改$http
POST
。 還要將params: data
更改為data: data
。 我在本地PC上嘗試了此代碼,並且可以正常工作。
控制器:
[HttpPost]
public RecordDTO[] GetMyFiles(UserClass usr, int uId, int fId )
{
}
JavaScript:
$http({
url: url,
method: 'POST',
data: data
})
.success(function (data) {
alert("OK");
})
.error(function (data) {
alert("error");
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.