簡體   English   中英

如何做http post json數據

[英]how to do http post json data

我是編程和角度的新手。 我在我的控制器中有這樣的數據

temanService.create({
    Userid: $scope.datateman.userid,
    Address: $scope.datateman.address,
    Employeeid: $scope.datateman.employeeid,
    Email: $scope.datateman.email,
    Phoneno: $scope.datateman.phoneno,
    Password: $scope.datateman.password,
    Division: $scope.datateman.division,
    Leavebalance: $scope.datateman.leavebalance
}).success(function(data) {
    $scope.showAlert({
        title: "Information",
        message: "Data Telah Tersimpan"
    });
});

這是我對http.request的服務

angular.module('starter.services', [])
    .factory('temanService', function($http) {
        var baseUrl = 'http://localhost:60820/MobileBootcamp.svc/';
        return {
            create: function(datateman) {
                return $http.post(baseUrl + 'insert?method=insertuser',
                    datateman, // <--- what to insert here
                    {
                        headers: {
                            'Content-Type': 'application/json; charset=utf-8'
                        }
                    });
            },
            update: function(datateman) {
                return $http.post(baseUrl + 'update.php', datateman, {
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8;'
                    }
                });
            },
            delete: function(id) {
                return $http.get(baseUrl + 'delete.php?id=' + id);
            }
        };
    });

這是插入的正確參數的示例

{
    "Value": "userid|address|employeeid|email|phoneno|password|division|leavebalanc"
}    

我的問題是,

如何將數據放入http請求post方法?

我想這樣做

method: 'POST',
url: 'http://110.35.82.163:9090/MobileBootcamp.svc/insert?    method=insertnews',
        crossDomain: true,
        headers: {
            'Content-Type': 'application/json; charset=utf-8'
        },
        data: { "Value": userID + "|" + $scope.title + "|" + $scope.posttag + "|" + $scope.content }

試試這個

var data = {
    Userid: $scope.datateman.userid,
    Address: $scope.datateman.address,
    Employeeid: $scope.datateman.employeeid,
    Email: $scope.datateman.email,
    Phoneno: $scope.datateman.phoneno,
    Password: $scope.datateman.password,
    Division: $scope.datateman.division,
    Leavebalance: $scope.datateman.leavebalance
};
var dataCollection = [];
for(var item in data){
    if(data.hasOwnProperty(item)){
        dataCollection.push(data[item]);        
    }
}
var DTO = {
    Value: dataCollection.join('|');
};
//do not use success. its obsolete
temanService.create(DTO).then(function(response){

},function(response){
    //error
});

像這樣的寫作服務將更具可讀性。

create: function(datateman) {
    var config = {
        method: "POST",
        url: baseUrl + 'insert?method=insertuser',
        data: datateman,
        headers: {
            'Content-Type': 'application/json; charset=utf-8'
        }
    };
    return $http(config);
}

這是文檔

$http.post('/someUrl', data, config).then(successCallback, errorCallback);

在你的代碼中你可以做到

var data = { "Value": datateman.userID + "|" + $scope.title + "|" + $scope.posttag + "|" + $scope.content } + 'your next values'.

    $http.post(baseUrl+'insert?method=insertuser', JSON.stringify(data) ,{
                headers: {
                   'Content-Type': 'application/json; charset=utf-8'
                }
            });

只需將數據屬性添加到您的服務。

對於您的代碼添加如下

create: function (datateman){
    return $http.post(baseUrl+'insert?method=insertuser',datateman,{
       headers: {
             'Content-Type': 'application/json; charset=utf-8'
        }
    });

暫無
暫無

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

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