当fn()放在外部文件中时,Ajax无法正常工作

时间:2012-05-04 17:32:50

标签: javascript ajax

我遇到Ajax问题,因为只要该函数放在外部文件中,代码就不会运行,但如果我将<script>标记放在文件中,它就会运行没有问题。这是功能:

function show_version(str) {
    var xmlhttp;    
    if (window.XMLHttpRequest) {xmlhttp=new XMLHttpRequest();}
    else {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {document.getElementById("sver").innerHTML=xmlhttp.responseText;}
    }   

    xmlhttp.open("GET","version.php?sname="+str,true);
    xmlhttp.send();
}

我已经测试过version.php并且工作得非常好。这就是我用来调用文件的方法: <script type="text/javascript" src="/test/search/jsSearch.js"></script> 快速回顾一下: 如果我在文件中使用<script>标签,该功能可以正常工作,但如果我尝试从外部链接文件,它根本就什么都不做。

我试过在w3schools.com上查看Ajax教程,但我找不到任何关于这个问题的内容。你知道我应该在哪里研究吗?

1 个答案:

答案 0 :(得分:1)

你是否在外部脚本页面上运行了jQuery并带有文档就绪功能?

尝试在我的网页上运行ajax时遇到了同样的问题。将ajax脚本内联添加到我的页面时工作得很好但是当我将它移动到外部脚本页面时它不再有效。

在查看我的代码后,我意识到我不小心将ajax函数放在了我的文档就绪函数中,我正在使用它进行其他一些jQuery编码。在我将其移出文档就绪功能之后,一切都再次完美。简单的修复,但可能是你的问题