我在这里面临非常奇怪的问题。我的机器上运行了一个 servlet,它根据一些输入参数呈现我的网页。
现在,如果我尝试将我的数据作为 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
此外,在我的代码中其他地方的许多地方..我正在对同一个 servlet 进行 Ajax POST 请求,它对所有这些请求都非常有效。
有人能解释为什么我的 servlet 没有读取从 Phantomjs 传递的 JSON 参数吗?