簡體   English   中英

Angular $ http get方法無法將正確的數據發送到服務器

[英]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-typeJSON ,請檢查您的服務正在參加。 如果是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM