簡體   English   中英

AngularJs發布到具有動態屬性的WebApi方法

[英]AngularJs Posting to a WebApi method with dynamic properties

我的webApi控制器代碼如下所示:

 [HttpPost]
        public int ValidateUser([FromBody]dynamic credentials)
        {
            try
            {
                string username = credentials.username;
                string password = credentials.password;
                //do stuff
                }
            }
            catch (Exception ex)
            {
                throw ex;
                return -1;
            }

            return -1; // not valid user
        }

我的角度服務如下所示:

 getAuthorizationStatus: function () {
                    var deferred = $q.defer();
                    $http({
                        method: "POST",
                        url: url,
                        data: {
                            'username': applicationConstants.userName,
                            'password': applicationConstants.userPass
                        },
                        headers: {
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
                    }
                    }).success(deferred.resolve)
                      .error(deferred.reject);
                    return deferred.promise;
                },

我能夠使用webApi方法,但是無論我如何執行,它總是返回如下錯誤:{“'object'不包含'username'的定義”}

知道我在做什么錯嗎?

我不知道ASP.net,但似乎您是通過“ x-www-form-urlencoded”發送JSON數據的; 請求。

您應該將'data:...'更改為'username =,password =', 或者如果要使用JSON,請使用

'Content-Type': 'application/json'

如果Web服務器是體面的,它應該檢測到您的內容類型並將其解釋為JSON,而不是查找“表單”數據。

還可以考慮使用curl (或任何允許您發送任意HTTP請求的Web服務)之類的工具來測試並了解發生了什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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