2017-05-08 14 views
0

私はOboeにリクエストを送信するようにしようとしていますが、動作していないようです。NodeJS OboeがPHPサーバーへリクエストボディを送信していません

// Doesn't work 
var oboe = require('oboe'); 
oboe({ 
    method: 'POST', 
    url: 'http://localhost:8440/oboe.php', 
    body: JSON.stringify({ 
     foo: 'bar', 
    }), 
}).done(function(data) { 
    console.log('oboe', data); 
}); 

// Works 
var request = require('request'); 
request({ 
    json: true, 
    method: 'POST', 
    url: 'http://localhost:8440/oboe.php', 
    body: JSON.stringify({ 
     foo: 'bar', 
    }), 
}, function(error, response, body) { 
    console.log('request', body); 
}); 

この出力:

$ node test.js 
oboe { get: [], post: [], body: '' } 
request { get: [], post: [], body: '"{\\"foo\\":\\"bar\\"}"' } 

とテストのための私の単純なPHPファイル:

<?php 
die(json_encode([ 
    'get' => $_GET, 
    'post' => $_POST, 
    'body' => file_get_contents('php://input'), 
])); 
これは私の簡単なテストスクリプトで、私はまた、正常に動作request.js例が含まれています

私は何か単純な間違いをしていると確信していますが、何が分かりません。

答えて

0

私はそれを理解したと思います。 Content-Lengthヘッダーを送信する必要があるようです。

var data = JSON.stringify({ 
    foo: 'bar', 
}); 
oboe({ 
    method: 'POST', 
    url: 'http://localhost:8440/oboe.php', 
    body: data, 
    headers: { 
     'Content-Type': 'application/json', 
     'Content-Length': data.length, 
    }, 
}).done(function(data) { 
    console.log('oboe', data); 
}); 
関連する問題