0

特定のGETデータが提供された場合にのみPOSTデータを処理するtest.phpファイルにPOSTデータを送信しようとしています。残念ながら、それを行う方法がわかりません。約1時間探し続けています。

私は現在、この素晴らしいものでたくさん遊んでいるので、助けていただければ幸いです。

前もって感謝します;

明確化:

次のような index.php があるとします。

<?php

if (isset($_GET['p']))
    echo count($_POST) . ' -- ' . count($_GET);
else echo 'fuuu';

?>
<form action="?p" method="POST">
    <input type="submit" name="lolw" value="Go" />
</form>

そのフォームを送信すると、PHP$_GET$_POSTスーパーグローバルの両方に 1 つの要素が含まれます。

それでは、nodeJS を介してそのフォームを実行してみましょう。

これが私のテストケースです(これは単にドクからのカットペーストです):

var http = require('http');

var options = {
   hostname: 'localhost',
   port: 80,
   path: '/test.php?lolw=1&p',
   method: 'POST'
};

var req = http.request(options, function(res) {
  console.log('STATUS: ' + res.statusCode);
  console.log('HEADERS: ' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  }).on('error', function (e) {
    console.log('error in chunk');
  });
});

req.on('error', function(e) {
  console.log('problem with request: ' + e.toString());
});

// write data to request body
req.write('data\n');
req.end();

CLI の出力では、body: 0 -- 2 が返され、フォームに従います。

私のポイントは: GET を介していくつかのパラメーターを送信し、POST を介していくつかのパラメーターを送信し、GET を介して送信する必要があるパラメーターと POST を介して送信する必要があるパラメーターを指定することは可能ですか?

4

1 に答える 1

2

node.js で HTTP リクエストを行うには、http.request. メソッドを「POST」に設定しても、URL にパラメーターを取得できます。Content-Lengthヘッダーをデータの長さに設定し、Content-Typeヘッダーをapplication/x-www-form-urlencoded「標準」の POST 要求に設定する必要があります。

あなたの質問はかなり漠然としています。特に問題がある場合は、コードを表示して、より正確な質問をしてください。

于 2012-04-16T19:24:08.250 に答える