2016-10-31 7 views
0

anglejsのJSONデータをPOSTリクエストとしてnode/expressに送信しようとしていますが、すべてのデータがのreqのKEY .bodyキー値のペアの代わりに。Angularjs JSON POSTデータがExpress.jsの値ではなくキーとして受信されました

私は同じ問題でこの質問を見ましたが、解決策は私の問題を解決しませんでした。ここでExpress.js : POST data as KEY of a req.body object instead of VALUE of req.body

は私のクライアント側のコード(ANGULARJS)である:ここでは

var job = { 
    session_id: $scope.uid, 
    timestamp: 0, 
    invoice_id: $params.i 
    }; 
    var url = 'https://example/' + $scope.uid; 

    var config = { 
     headers : { 
      'Content-Type' : 'application/json; charset=UTF-8' 
     } 
    }; 

    //var config = {}; 
    $http.post(url, job, config).then(
    function successCallback(response) { 
    $scope.loading = false; 
    console.log('Success:', response.data) 
    }, function errorCallback(response) { 
    $scope.loading = false; 
    console.log('Error:', response.data) 
    }); 

は私のサーバー側のコードであります(NODEJS/EXPRESS):

app.use(bodyParser.json()); 
app.use(function (req, res, next) { 
    var domainWhitelist = ['https://www.example.com']; 
    var origin = req.headers.origin; 
    if(domainWhitelist.indexOf(origin) > -1){ 
    res.setHeader('Access-Control-Allow-Origin', origin); 
    } 
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST'); 
    next(); 
    }); 
    app.post('/payment/:session', function(req, res) { 
    var data = req.body; 
    console.log('data:', data) 
    }); 

これは、私は、サーバー側で取得したデータです。

{'{"session_id":"123","timestamp":0,"invoice_id":"-test"}': '' } 

答えて

0

試してみてください。

$http.post(url, {data:job}, config).then(
    function successCallback(response) { 
    $scope.loading = false; 
    console.log('Success:', response.data) 
    }, function errorCallback(response) { 
    $scope.loading = false; 
    console.log('Error:', response.data) 
    }); 
関連する問題