Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在没有浏览器的情况下是否可以进行ajax调用?_Javascript_Jquery_Ajax_Mocha.js_Chutzpah - Fatal编程技术网

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

我正在尝试使用mocha和chutzpah创建JavaScript测试,这意味着我所有的测试都是无浏览器的。我遇到的问题是,我所有的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总是在禁用安全性的情况下运行脚本。