ここで非常に奇妙な問題に直面しています。いくつかの入力パラメーターに基づいて Web ページをレンダリングするサーブレットをマシンで実行しています。
現在、データを JSON オブジェクトとして POST 要求タイプとして送信しようとすると、PhantomJS を使用したスクリーン キャプチャが機能しません。たとえば、私が試してみると:
クライアント側
var data = {"op": "get"};
page.open(address, 'POST', data, function (status) {
if (status !== 'success') {
console.log('[ERROR] :: Unable to fetch the address - ' + address + ", with data - " + data);
phantom.exit();
} else {
page.render(output);
}
console.log('processing...');
});
サーバ側
現在、サーバー側では、Apache Velocity View テンプレートを使用しているため、次のように get と post の両方を処理する単一のメソッドがあります。
public Template handleRequest(HttpServletRequest request, HttpServletResponse response,
Context context){
System.out.println(request.getParameter("op"));
//Always null
}
ただし、phantomjs から次のようにデータを送信しようとすると:
var data = "op=get&..."
It works
また、コードの他の多くの場所で..同じサーブレットに対して Ajax POST リクエストを実行していますが、これらすべてのリクエストに対して完全に機能します。
私のサーブレットが Phantomjs から渡された JSON パラメータを読み取らない理由を誰か説明してくれませんか?