Ajax不能在远程服务器上工作

ajax doesn't work on remote server

本文关键字:服务器 工作 不能 Ajax      更新时间:2023-09-26

我的windows8上有这部分ajax代码

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js "></script>
<script>
$(document).ready(function(){
    $('#next_Button').click(function(){
        var text = document.getElementById("textbox");
        var query = text.value;
        $('#response').html("<b>Loading response...</b>");
        $.ajax({
            type: 'POST',
            url: 'http://192.168.92.131/search2/info.php', 
            data: { query : query }
        })
        .done(function(data){
            $('#response').html(data);
            alert("sent query");             
        })
        .fail(function() {         
           alert( "Posting failed." );
        });
        return false;
    });
});
</script>

和php代码在我的虚拟Ubuntu机上

echo $_POST['query'];

IP地址是正确的,它总是固定的。但是ajax总是说"发布失败"。当我把html代码放到服务器上并设置url:'search2/info.php'它的工作原理。但当它的远程服务器与http://ipaddress/search2/phpname它不工作。顺便说一下,我的php代码是在var/www/html/search2托管在apache。这个问题来自ajax吗?即使当我点击这个完整的url它显示服务器页面!但是ajax不能使用这个直接url到。php !

Ajax具有跨域保护,以防止从其他域加载,而不是您浏览的域。

这是一个安全特性。我建议你在这里读一下:jQuery AJAX跨域

关于这个主题还有很多其他的问题。

我真的很高兴自己找到了!!我通过双击打开。html(这是真的错了,我从来没有注意到),现在我明白在本地主机或127.0.0.1上打开它!它工作正常。之前,警报显示它工作,但服务器没有回答…而且它还打印了一整页!!看,标签后面有很多评论所以它会回显所有注释:)