使用AJAX在两个JavaScript文件之间进行通信并发送数据

时间:2015-06-01 15:37:37

标签: javascript jquery ajax

我能够从B.js文件中的Ajax调用的成功函数到达外部JavaScript文件A.js。这是来自B.js文件的代码。

$.ajax({
    url:"A.js"
}).done(function(){
    alert("Success");
}).fail(function(){
    alert("Failure");
});

我收到警报"成功"。现在我想在上面的AJAX调用中将数据发送到A.js,但不使用数据属性。我不希望它被附加到URL。我只想发送我在B.js文件中获得的东西并将其发送到A.js文件进行处理。我该如何实现这一目标?任何帮助表示赞赏。谢谢。

这是我简单的A.js文件。

$("#bookLink").click(function(){
    console.log();      
});

我希望上面的函数在点击链接时运行,以从B.js文件中的AJAX调用中获取该链接的值。

2 个答案:

答案 0 :(得分:0)

您应该声明一个全局变量global_data,然后在加载A.js脚本之前将数据分配给它

//global variable
window.global_data = 'some data';
$.ajax({
    url:"A.js"
}).done(function(){
    //use the variable on script load
    alert(global_data);
}).fail(function(){
    alert("Failure");
});

答案 1 :(得分:0)

不使用AJAX检索您的A.js文件,而是将其插入带有<script>标记的页面,如下所示:

var script = document.createElement('script');
script.src = '/path/to/A.js';
script.onload = function () {
    // this will execute when your "A.js" script is loaded into
    // your environment - "A.js" will have the same global
    // object (window) as your "B.js"
}

document.body.appendChild(script);

jQuery示例:

$.getScript('/path/to/A.js', function (script) {
    // fired once the script has been loaded (but not necessarily executed).
});