我尝试使用mocha和chutzpah创建JavaScript测试,这意味着我的所有测试都是无浏览器的。我遇到的问题是我的所有AJAX调用都返回一个空字符串,即使以下内容也不起作用:
$.ajax({
url: "http://www.something.com/",
//Ajax events
async: false,
}).done(function(data) {
test = data;
});
此处,测试设置为''我已经尝试了许多不同的AJAX参数组合,例如async
,type
,{{1 },dataType
等
所以我的问题是,没有浏览器可以调用AJAX吗?
答案 0 :(得分:3)
我快速浏览了chutzpah,它似乎是在Phantom.js之上实现的。因此,如果没有浏览器,您就无法运行测试。相反,您在基于Webkit的浏览器中运行测试 - 尽管没有GUI。
由于您的测试在浏览器中运行,因此适用所有浏览器限制。这包括同源策略。因此,根据chutzpah如何加载测试脚本,您的ajax调用可能会失败。
如果chutzpah从磁盘加载测试页面,那么同源策略总是会失败。我不太了解chutzpah但是如果可能的话,它会从URL加载你的测试页面(你总是可以在localhost上运行测试服务器)。
您可以通过在命令行上传递--web-security=false
来实际禁用Phantom.js中的安全功能。不确定你是如何从Mocha和chutzpah那样做的,但这是你可以调查的另一种选择。
答案 1 :(得分:0)
所以我的问题很愚蠢。在我使用的框架之上的Ajax查询需要" www。"因此,而不是打电话给" google.com"我需要打电话给" www.google.com"。 www重定向不起作用。