casperjs empy POST 提交大值时的数据
casperjs empy POST data when large values are submitted
我有一个已加载的表单,我只是简单地提交了该表单。在表单中有一个 input type=hidden 字段,其中存储了一些长字符串。这在常规浏览器上工作正常,不适用于 casper。在分析这一点时,apache 本身正在从 casper 获取空 POST 数据。如果我减少隐藏输入的数据,它就可以正常工作。在 casper 中是否有大小限制或定义的内容?
代码如下:
var casper = require('casper').create();
casper.start('http://localhost/loadForm', function() {
// Wait for the page to be loaded
this.waitForSelector('form[action="/saveConfig"]');
});
casper.then(function() {
this.evaluate(function() {
$('#form').submit();
});
});
casper.run();
下面的错误报告对我有帮助。我认为这是一个 phantomjs 错误。隐藏字段之一是存储 base64 png 图像,在我的 html 页面中,它由 canvas.toDataURL("image/png") 填充。与实际浏览器相比,这在 casperjs 中产生不同的 base64。这导致 $_POST 在 php 中为空。但是当我尝试 file_get_contents("php://input") 时,数据全部存在。我使用 canvas.toDataURL("image/png", 0) 解决了这个问题。第二个参数在浏览器和 casperjs 中产生一致的输出。
我有一个已加载的表单,我只是简单地提交了该表单。在表单中有一个 input type=hidden 字段,其中存储了一些长字符串。这在常规浏览器上工作正常,不适用于 casper。在分析这一点时,apache 本身正在从 casper 获取空 POST 数据。如果我减少隐藏输入的数据,它就可以正常工作。在 casper 中是否有大小限制或定义的内容?
代码如下:
var casper = require('casper').create();
casper.start('http://localhost/loadForm', function() {
// Wait for the page to be loaded
this.waitForSelector('form[action="/saveConfig"]');
});
casper.then(function() {
this.evaluate(function() {
$('#form').submit();
});
});
casper.run();
下面的错误报告对我有帮助。我认为这是一个 phantomjs 错误。隐藏字段之一是存储 base64 png 图像,在我的 html 页面中,它由 canvas.toDataURL("image/png") 填充。与实际浏览器相比,这在 casperjs 中产生不同的 base64。这导致 $_POST 在 php 中为空。但是当我尝试 file_get_contents("php://input") 时,数据全部存在。我使用 canvas.toDataURL("image/png", 0) 解决了这个问题。第二个参数在浏览器和 casperjs 中产生一致的输出。