Javascript 在没有浏览器的情况下是否可以进行ajax调用?
我正在尝试使用mocha和chutzpah创建JavaScript测试,这意味着我所有的测试都是无浏览器的。我遇到的问题是,我所有的AJAX调用都返回一个空字符串,即使以下操作不起作用:Javascript 在没有浏览器的情况下是否可以进行ajax调用?,javascript,jquery,ajax,mocha.js,chutzpah,Javascript,Jquery,Ajax,Mocha.js,Chutzpah,我正在尝试使用mocha和chutzpah创建JavaScript测试,这意味着我所有的测试都是无浏览器的。我遇到的问题是,我所有的AJAX调用都返回一个空字符串,即使以下操作不起作用: $.ajax({ url: "http://www.something.com/", //Ajax events async: false, }).done(function(data) { test = data; }); 在这里,测试设置为“”,我也尝试了许多不同的AJAX
$.ajax({
url: "http://www.something.com/",
//Ajax events
async: false,
}).done(function(data) {
test = data;
});
在这里,测试设置为“”,我也尝试了许多不同的AJAX参数组合,如异步
,类型
,数据类型
,成功
,等等
所以我的问题是,AJAX调用是否可以在没有浏览器的情况下进行?我快速查看了chutzpah,它似乎是在Phantom.js之上实现的。因此,在没有浏览器的情况下,您不会运行测试。相反,您正在基于Webkit的浏览器中运行测试,尽管没有GUI 由于测试在浏览器中运行,因此所有浏览器限制都适用。这包括同一原产地政策。因此,根据chutzpah加载测试脚本的方式,ajax调用可能会失败 如果chutzpah从磁盘加载测试页,则同源策略总是失败。我对chutzpah了解不多,但如果可能的话,可以让它从URL加载测试页面(您总是可以在localhost上运行测试服务器)
实际上,您可以通过在命令行上传递
--web security=false
来禁用Phantom.js中的安全功能。我不知道你会如何从摩卡咖啡和chutzpah咖啡中做到这一点,但这是你可以研究的另一个选择。所以我的问题很愚蠢。在我使用的框架之上的Ajax查询需要“www”。因此,我需要调用“www.google.com”,而不是调用“www.google.com”。www重定向不起作用。否。否则,CRON解决方案将是不必要的。是的,但您必须先进行设置-。。。让我们调用这些请求,而不是AJAX调用。我在这里浏览了解决方案:之前,但他正在使用mock。我不能出于我的目的使用mock。@吉普赛达夫:“不,如果jQuery没有首先绑定到文档对象(通常在浏览器中),你就不能发出jQuery ajax请求。这就是jQuery脚本开头的$(document)所发生的事情”呃?!Chutzpah总是在禁用安全性的情况下运行脚本。