現在、AWS Lambdaを使用しているAlexaスキルで作業しています。サーバーにHTTP param/customヘッダーを正常にPOSTできないようです。情報を完全に取得することはできますが、なぜパラメータ/カスタムヘッダーを送信しないのかわかりません。 HTTP POSTリクエストを送信するためのカスタムヘッダーを含むHTTP POSTを外部サーバーに送信できません
私のコードは次のようになります。
function httpGetMall(latitude, longitude, callback) {
var options = {
host: 'myserver.com',
path: '/path/to/script.php',
auth: 'myAuthenticationPassword'.toString('base64'),
method: 'POST',
headers: {'latitude': latitude.toString(), 'longitude': longitude.toString()}
};
var req = http.request(options, (res) => {
var body = '';
res.on('data', (d) => {
body += d;
});
res.on('end', function() {
callback(body);
});
});
req.end();
req.on('error', (e) => {
});
}
私はそれが完全にコールバックにデータを返すよう関数は、正しく呼び出されている事実を知っています。
私のPHPスクリプトでは、私はそうのような値をつかむしようとしています:
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];
私は、彼らが渡され取得されていないかどうかを確認するために、関数の内部緯度と経度を設定し、手動で試してみましたが、しかし、サーバーはそれをまだ受信していません。
ご協力いただければ幸いです。ありがとう!
POSTデータがヘッダーで送信されていないことを認識していますか。これは、コード化された文字列として本文に送信されます。おそらくあなたのPHPがそれを見つけようとしているところでしょうが、node.jsでPOSTリクエストを作成するときにデータを適切な場所に置かなかったのです。 – jfriend00
@ jfriend00ああ、私はそれを認識しませんでした。データをエンコードされた文字列として本体に送信するにはどうすればよいですか?私はNodeJSとネットワーキングが初めてです。私の用語が間違っていると、すみません。 –
私は答えでそれを行う方法を示しました。 – jfriend00