1

How do I resolve CasperJS script for POST request issue? Get response data is null, even though same request show data in POSTMAN, with exact same request.

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();
Artjom B.
  • 61,146
  • 24
  • 125
  • 222

2 Answers2

1

Why is the POST request response data null in CasperJS

PhantomJS doesn't provide the contents of any request or response. You can only read the header information, the status code and the content length. You can access the request/response body in Slimer.js though.

How do I resolve CasperJS script for POST request issue?

Here are some workarounds.

Community
  • 1
  • 1
Artjom B.
  • 61,146
  • 24
  • 125
  • 222
0

Run using this command : 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();