我想使用PhantomJS和highcharts生成报告。但对于我的图表,我的数据在SQL数据库中。通常,为了生成我的图表,我使用ajax请求和文件query.cfc(coldfusion),我的图表工作。但是使用PhantomJS,如果我使用我的ajax请求添加一个函数,我在回调中出错 - 错误404但我不是没有原因。它与我用于简单图表的功能相同。
我使用phantomjs --web-security=no test.js
var system = require('system');
var page = require('webpage').create();
var fs = require('fs');
// load JS libraries
page.injectJs("jquery-2.1.1.js");
page.injectJs("highcharts.js");
page.injectJs("exporting.js");
// chart demo
var args = {
width: 600,
height: 500
};
page.onConsoleMessage = function(msg) {
console.log(msg);
};
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
var svg = page.evaluate(function(opt) {
$('body').prepend('<div id="container"></div>');
function test() {
$.ajax({
type: "POST",
async: false,
url: "query3.cfc?method=test",
data: {
'arg1': 'aee',
'arg2': 'ss'
},
success: function(year) {
var lim_annee = jQuery.parseJSON(year);
console.log('success');
},
error: function(jqXHR, exception) {
console.log('erreur ' + jqXHR.status);
console.log('erreur2 ' + exception);
}
});
};
//chart Code
return chart.getSVG();
}, args);
page.render('img.jpeg', {
format: 'jpeg',
quality: '100'
});
phantom.exit()
});
答案 0 :(得分:2)
如果你没有在PhantomJS中打开一个页面,它将保持在“about:blank”和“about:blank / query3.cfc?method = test”似乎不是一个正确的URL。使用正确的URL到ColdFusion服务器:
url: "http://localhost:port/query3.cfc?method=test",
在执行任何其他操作之前,或在PhantomJS中初始化基本域:
page.setContent("", "http://localhost:port/");
请记住,如果要打开简单的本地HTML文件,则需要使用“file://”协议并删除任何查询字符串。
此外,加载多个jQuery版本可能会破坏您的脚本。