我正在使用onResourceRequested
来监听所请求的每个资源。
当使用GET方法请求资源时,我可以从URL获取查询参数。
但是当它是POST请求时,如何检索随请求发送的参数(例如表单数据)?
requestData
对象具有以下键:headers
,id
,method
,time
,url
。
page.onResourceRequested = function (requestData, networkRequest) {
if(requestData.method == "POST")
console.log('Receive ' + JSON.stringify(requestData, undefined, 4));
};
Receive {
"headers": [
{
"name": "Origin",
"value": "https://mastec.taleo.net"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16"
},
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded"
},
{
"name": "Referer",
"value": "https://example.com?lang=en"
},
{
"name": "Accept",
"value": "*/*"
},
{
"name": "Content-Length",
"value": "20161"
}
],
"id": 18,
"method": "POST",
"time": "2015-07-16T14:03:54.838Z",
"url": "https://example3.com"
}
答案 0 :(得分:1)
一般来说,你不能。 PhantomJS没有公开获取任何请求内容的方法。
如果您想查看从旧的HTML(非AJAX版本)表单提交生成的请求,那么您需要在提交之前抓取表单字段以获取内容。
如果是AJAXy,那么您可以尝试三种策略。我在my answer here中描述过它们。一般的解决方案是编写XHR对象代理。