没有浏览器可以调用ajax吗?

时间:2015-08-07 21:29:27

标签: javascript jquery ajax mocha chutzpah

我尝试使用mocha和chutzpah创建JavaScript测试,这意味着我的所有测试都是无浏览器的。我遇到的问题是我的所有AJAX调用都返回一个空字符串,即使以下内容也不起作用:

$.ajax({
    url: "http://www.something.com/",
    //Ajax events
    async: false,
}).done(function(data) {
    test = data;
});

此处,测试设置为''我已经尝试了许多不同的AJAX参数组合,例如asynctype,{{1 },dataType

所以我的问题是,没有浏览器可以调用AJAX吗?

2 个答案:

答案 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重定向不起作用。