$ .ajax或$ .get函数只接收本地文件

时间:2011-02-25 04:05:16

标签: jquery ajax cross-domain

我需要使用$ .ajax或$ .get来获取xml文件的获取响应。 问题是$ .ajax或$ .get函数似乎没有从远程服务器中的文件获得响应。它显然只适用于本地文件。我正在从本地服务器开发网站,所以我的serverhost就像127.0.0.1/。有谁知道这个问题?或者,无论如何我可以调试这个问题吗?我想我已经阅读过浏览器不允许跨站点-ajax调用的地方..但是......如何才能进行远程主机调用?

<script>
$(document).ready(function(){
    $.ajax({
        url: "<?=$request_url?>",
        data: "<?=$data?>",
        success: function(msg){
         alert( "Data Saved: " + msg );
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
             $("#output").append(XMLHttpRequest.responseText + "<br />TextStatus: " + textStatus + "<br />ErrorThrown: " + errorThrown);
        }
    })
});
</script>

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

是的,这是正确的,因为您无法使用这些方法访问其他域上的内容。这是一个跨域脚本安全问题。

看一下与jQuery和Javascript相关的XSS。

答案 2 :(得分:1)

由于安全限制,浏览器不允许跨域ajax调用

但野外还有一些变通方法。 试试这些

http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

http://usejquery.com/posts/9/the-jquery-cross-domain-ajax-guide

答案 3 :(得分:0)

幸运的是,由于跨域策略,您不能。但是,您可以通过$.ajax调用调用服务器端脚本,然后调用远程站点脚本。