ajax 无法在远程服务器上运行

ajax doesn't work on remote server

我的 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 总是说 'posting failed'。当我将 html 代码放在服务器上并设置 url :'search2/info.php' 有用。但是当它是带有 http:// ipaddress / search2 / phpname 的远程服务器时,它不起作用。顺便说一下,我的 php 代码位于 var/www/html/search2 托管在 apache 上。 这个问题来自 ajax 吗?即使我点击这个完整的 url 它也会显示服务器页面!但是 ajax 不能直接使用 url 到 .php !

Ajax 具有跨域保护,以防止从您浏览的域以外的域加载。

这是一项安全功能。 我建议你在这里阅读一下: jQuery AJAX cross domain

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

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