gpt4 book ai didi

javascript - 为什么这个 ajax 没有返回预期的 javascript

转载 作者:行者123 更新时间:2023-12-02 17:43:30 28 4
gpt4 key购买 nike

我有以下代码:

 var statusCheckUrl = "https://www.mydomain.com/webchat/live?action=avail";
$.ajax({
crossDomain: true,
dataType: "script",
url: statusCheckUrl,
success: function(result) {
console.log("result is: "+result);
eval(result);
},
error: function (jqXHR, textStatus, msg) {
unavailable();
},
timeout: 2000,
cache: false
});

如果我访问网址:https://www.mydomain.com/webchat/live?action=avail在我的浏览器中,响应如下所示: var isAvailable = true;

但是,我的 console.log 正在打印 undefined ,这显然没有按预期工作。

我从本地主机运行此代码,但认为 crossDomain: true 可以克服任何跨域问题?

如何解决这个问题以及为什么它在我的成功函数中返回未定义?

编辑:我已经尝试了下面的人关于评估的建议,但无论如何,结果值似乎总是未定义的。为什么我由于这个 ajax 调用而变得未定义?

最佳答案

问题不在于 AJAX 调用,而在于 eval 在其自己的范围内运行。下载脚本中的 var 关键字正在设置一个本地变量,该变量很快就会超出范围。相反,您想要设置一个全局变量(删除 var 关键字)。

另请参阅:Using eval() to set global variables

<小时/>

旁注:不要执行不必要的代码,尤其是动态跨域。如果您只想获取一个值(在这种情况下,如果某些内容可用或不可用),则只需返回该值即可。 (如果您无法控制脚本,但它看起来总是一样,您总是可以将其解析为字符串。您可能需要编写一个以一定时间间隔运行的脚本来检查并提醒您它们的任何更改但是响应格式。)

关于javascript - 为什么这个 ajax 没有返回预期的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978990/

28 4 0
文章推荐: javascript - Canvas 使用字母而不是形状?
文章推荐: javascript url 值到多个字段
文章推荐: javascript - 如何使用 javascript 检索 html 中所有突出显示的单词
文章推荐: javascript - 如何获取所有 div 中特定
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com