簡體   English   中英

Angular $ http.post:無法將帶有數據的對象發送到服務器。 數據作為字符串起作用,作為對象起作用,而不是

[英]Angular $http.post: cannot send objects with data to server. Data as a string works, as an object - not

我想使用此功能將數據發送到服務器:

var _register = function (email, password, passconfirmation) {
    var data = {
        "Email": email,
        "Password": password,
        "ConfirmPassword": passconfirmation
    };

    return $http.post('/api/Account/Register', data, {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
    });
}

沒用 我的ASP.net Web API沒有收到任何數據。 服務器端的每個變量均為“ null”。 但是當我這樣做時:

var _register = function (email, password, passconfirmation) {
    var data = "email=" + email + "&password=" + password + "&ConfirmPassword=" + passconfirmation;

    return $http.post('/api/Account/Register', data, {
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
    });
}

一切正常。 問題是:第一種方法比第二種方法清晰得多,因此我想使用第一種方法。 但是我不知道怎么了:/

我過去曾遇到過這個問題。 嘗試

JSON.stringify(data)

在將其傳遞到職位之前。 然后,另一側的對象資料夾應該能夠接受它。

刪除帖子中的標題或更改標題,如下所示

 headers: { 'Content-Type': 'application/json' }

您的代碼應該是

var _register = function (email, password, passconfirmation) {
    var data = {
        "Email": email,
        "Password": password,
        "ConfirmPassword": passconfirmation
    };

    return $http.post('/api/Account/Register', data, {
        headers: { 'Content-Type': 'application/json' }
    });
}

你需要這樣做

自AngularJS以來,使用

Content-Type: application/json

 return $http.post('/api/Account/Register', {'dataObj' : data  }, {
        headers: { 'Content-Type': 'application/json' }
    });

您的數據應為鍵/值對,請嘗試:數據變量將在參數dataObj下到達服務器

暫無
暫無

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

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