gpt4 book ai didi

javascript - 没有浏览器是否可以进行ajax调用?

转载 作者:行者123 更新时间:2023-11-29 19:23:39 25 4
gpt4 key购买 nike

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

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

在这里,测试设置为'',我也尝试了很多不同的 AJAX 参数组合,例如 asynctypedataType成功

所以我的问题是,是否可以在没有浏览器的情况下进行 AJAX 调用?

最佳答案

我快速浏览了一下 chutzpah,它似乎是在 Phantom.js 之上实现的。因此,您不会在没有浏览器的情况下运行测试。相反,您是在基于 Webkit 的浏览器中运行测试 - 尽管没有 GUI。

由于您的测试是在浏览器中运行的,因此所有浏览器限制都适用。这包括同源策略。因此,根据 chutzpah 加载测试脚本的方式,您的 ajax 调用可能会失败。

如果 chutzpah 从磁盘加载您的测试页面,那么同源策略总是失败。我不太了解 chutzpah,但如果可能的话,让它从 URL 加载你的测试页面(你总是可以在本地主机上运行测试服务器)。

您实际上可以通过在命令行上传递 --web-security=false 来禁用 Phantom.js 中的安全功能。不确定如何从 Mocha 和 chutzpah 中做到这一点,但这是您可以研究的另一种选择。

关于javascript - 没有浏览器是否可以进行ajax调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31886911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com