Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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中传递全局js变量_Javascript_Jquery_Html_Ajax_Cordova - Fatal编程技术网

Javascript 未在$.ajax中传递全局js变量

Javascript 未在$.ajax中传递全局js变量,javascript,jquery,html,ajax,cordova,Javascript,Jquery,Html,Ajax,Cordova,我在.js文件中声明了一个变量server_url,当我在file.js中发出警报时,我可以看到它 问题是当我启动ajax请求时,似乎没有看到server_url的值,它直接进入错误消息。但是,当我用脚本标记硬编码HTML文件中的变量,并从HTML中删除config.js文件的include时,ajax请求可以毫无问题地读取它 有什么解释或帮助吗? 下面是我的代码的大致部分 config.js var server_url = 'https://url.com'; file.js $('#ap

我在.js文件中声明了一个变量server_url,当我在file.js中发出警报时,我可以看到它

问题是当我启动ajax请求时,似乎没有看到server_url的值,它直接进入错误消息。但是,当我用脚本标记硬编码HTML文件中的变量,并从HTML中删除config.js文件的include时,ajax请求可以毫无问题地读取它

有什么解释或帮助吗? 下面是我的代码的大致部分

config.js

var server_url = 'https://url.com';
file.js

$('#app_status_account').click(function() {

    alert(server_url);

    $.ajax({
        url: server_url + '/my_web_service',
        type: "POST",
        data: {
            client_phone: $('#client_phone_number').val(),
            PIN_code: $('#pass').val()
        },
        success: function(msg) {
            alert(JSON.stringify(msg));
        }
        error: function(jqXHR, textStatus) {
            alert('Request couldn't be done');
        }
    });
});
index.html(include部分;在关闭body标记之前,我在头部甚至最后尝试了它)


尝试用

window.server_url = 'https://url.com';

听起来,当您声明它时,您并不是在全局范围内执行它。您还可以尝试在声明后立即放置
alert(1)
,然后在执行ajax调用之前,在函数中放置
alert(server\u url)
,并确保在ajax函数中看到警报之前的第一个警报。

它确实在全局范围内吗?为了确保安全,请删除
var
并将其更改为
window.server\u url=”https://url.com“
@Lotus91您能更新您的问题并添加您得到的错误吗?^^^这是。很可能不是url出错,而是服务器错误。当url直接位于html文件中时,一切正常。您没有捕获实际错误。将错误处理程序更改为
函数(jqXHR,textStatus,error)
,并将下一行更改为
警报(error)
然后让我们知道发出了什么警报。声明后的警报和ajax函数前的警报都会毫无问题地显示出来。仍然不工作window.server\u url在声明server\u url后立即发出警报
警报(window.server\u url)
您看到了吗?另外,在您的ajax方法中,将全局称为
window.server\u url
,而不仅仅是
server\u url
,也许此时您的作用域中还有另一个
server\u url
变量,我完全按照您刚才所说的做了,仍然是一样的,我用window.server\u url替换了server\u url,ajax函数中的警报显示在声明变量时发出的警报之后?如果在ajax函数中放入
setInterval(function(){console.log(window.server\u url)},1000)
并打开控制台,您最终会看到打印出正确的值吗?在我测试时,服务器出现了问题。你从一开始就是对的。谢谢!:)
window.server_url = 'https://url.com';