【问题标题】:JQuery AJAX GET returning an empty fileJQuery AJAX GET 返回一个空文件
【发布时间】:2010-01-14 19:54:44
【问题描述】:

我正在尝试通过 AJAX 获取 http://lib.softvoyage.com/cgi-bin/gate_dest_hotels.xml?code_ag=nwi&alias=tpi&language=en&with_cdata=y,但它不断返回 nadda(此处的萤火虫截图:http://img683.imageshack.us/img683/3279/firebug.jpg

下面是代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <title>Search Form</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    </head>
    <body>
        <form method="post" action="#">
            <label for="gateway_dep">Leaving From:</label>
            <select id="gateway_dep" name="gateway_dep">
                <option value="">Select a gateway</option>
                <option value=""></option>
                <option value="">Loading gateways</option>
            </select>
        </form>
        <script type="text/javascript">
        <!--
            $(document).ready(function() {
                $.ajax({
                    url:"http://lib.softvoyage.com/cgi-bin/gate_dest_hotels.xml?code_ag=nwi&alias=tpi&language=en&with_cdata=y",
                    cache:false,
                    dataType:"text",
                    type:"GET",
                    success:function(xml) {
                        alert(xml);
                    }
                });
            });
        -->
        </script>
    </body>
</html>

【问题讨论】:

    标签: jquery xml ajax


    【解决方案1】:

    您只能在与当前页面相同域内的页面上使用 AJAX。如果您想从外部来源获取数据,则必须使用 getJSON 函数,而其他站点必须以 getJSON 可以处理的形式返回数据。

    或者,您可以有一个服务器端代理,在不存在 AJAX 限制的服务器端执行 get 请求,然后将数据返回到您的页面。

    【讨论】:

    • 啊,你是对的,出于某种原因,跨域甚至没有进入我的脑海
    【解决方案2】:

    您不能通过 $.ajax 调用向另一个域发出请求,这里是工作轮次的好帖子:http://www.wait-till-i.com/2010/01/10/loading-external-content-with-ajax-using-jquery-and-yql/ 这是一种安全措施,可以防止说,您的广告/iframe 在收集我的登录信息的页面上页面上的信息,然后将其上传到另一个站点。

    您最好的选择是在您自己的域上使用代理,或者使用 YQL 方法并通过 yahoo,这在上面的博客中有详细说明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-02
      • 2011-09-25
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      相关资源
      最近更新 更多