ajax在远程服务器上不起作用

时间:2015-08-09 08:01:48

标签: javascript ajax 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>
我的虚拟Ubuntu机器上的

和php代码

echo $_POST['query'];

IP地址是正确的,并且始终是固定的。但是ajax总是说'发布失败'。当我把html代码放在服务器上并设置url时:'search2 / info.php' 有用。但当它是http:// ipaddress / search2 / phpname的远程服务器时,它不起作用。顺便说一句,我的PHP代码是在apache上托管的var / www / html / search2中。 这是来自ajax的问题​​吗?即使我点击这个完整的URL它显示服务器页面!但是ajax不能将这个直接网址用于.php!

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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