如何针对POST请求问题解决CasperJS脚本?获取响应数据为空,即使相同的请求在POSTMAN中显示数据,但请求完全相同。
casper = require('casper').create({
verbose : true
clientScripts : ['includes/jquery-2.1.1.min.js']
});
casper.start();
var productId = casper.cli.get("productId");
var pageNum = casper.cli.get("pageNum");
var url = 'https://example.com/store/getreviews?authuser=0';
var data= {
a:'val1',
b:'val2'
};
casper.thenOpen(
url,
{
method: 'POST',
data: data
}
);
casper.then(function(response) {
this.echo('Response: '+JSON.stringify(response,null,2));
this.capture('this.png');
});
casper.run();
答案 0 :(得分:1)
为什么CasperJS中的POST请求响应数据为空
PhantomJS不提供任何请求或响应的内容。您只能读取标题信息,状态代码和内容长度。您可以访问Slimer.js中的请求/响应正文。
如何针对POST请求问题解决CasperJS脚本?
Here是一些解决方法。
答案 1 :(得分:0)
使用此命令运行:casperjs --ssl-protocol = any example.js
var casper = require('casper').create({
verbose : true,
logLevel :"debug"
});
casper.start();
casper.then(function() {
this.open('http://example.com/');
});
casper.then(function() {
resp = this.evaluate(function() {
var res = $.ajax({
url: 'https://example.com/store/getreviews?authuser=0',
method: 'POST',
data: {
a=val1,
b=val2
},
async: false
});
return res.responseText;
});
});
casper.then(function() {
console.log(resp);
});
casper.run();