【问题标题】:XML not loading with jquery GET but does load with direct link and php?XML 不使用 jquery GET 加载,但使用直接链接和 php 加载?
【发布时间】:2010-02-02 22:12:10
【问题描述】:

我试图拉入一个 xml 提要,我可以用 php 和 simpleXML 加载它,我可以查看直接链接,但是当我尝试使用 jquery 并 GET 它只是超时并且我从未得到响应时,错误返回的是未定义的。

这是我正在使用的代码

$.ajax({
type: "GET",
url: "myurlishere",
dataType: "xml",
timeout: 1000,
contentType: "text/xml",
success: function(xml) {
       alert("in");
  },
   complete: function(XMLHttpRequest, textStatus) {
               alert(textStatus);
   },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
       alert(errorThrown);
    }
 });

【问题讨论】:

    标签: jquery xml ajax


    【解决方案1】:

    该 URL 是否与包含您的 Javascript 的页面位于同一域中?如果没有,那么浏览器不会让您的页面使用简单的 AJAX 访问它。

    【讨论】:

    【解决方案2】:

    代码看起来没问题。对我来说。但是,PHP 和 JQuery 之间的显着区别在于 PHP 在您的 Web 服务器上执行,而 JQuery 在您的访问者的浏览器中执行。也许您使用的 URL 只能被 Web 服务器上的 PHP 脚本访问。

    在浏览器地址栏中输入 URL 是否有效?

    它是什么类型的 URL?它不是以localhost 开头的,是吗?

    【讨论】:

    • 是的,当我直接访问它时它可以工作,它没有说 localhost ,它是一个指向我可以查看的网络服务器上的提要的链接,并且可以使用 php 访问,它只是在我没有做任何事情时尝试使用 jquery 请求它
    • 啊,当然是同源策略。这行不通,您需要在本地 Web 服务器上使用代理。 @Pointy 做对了。
    【解决方案3】:

    这些问题通常源于网址混淆:例如指定了一个相对 URL,但它被 1 个目录等关闭了。

    另外——我注意到您指定的超时时间为 1 秒。我不知道你点击的是什么类型的网址……时间够了吗?

    【讨论】:

    • 是的,不确定,我使用的是服务器上 xml 提要的直接链接,如果我将其复制并粘贴到浏览器中,我可以直接查看该提要。即使我增加了超时时间,我也会得到同样的结果
    【解决方案4】:

    你试过了吗

    $.load(); 
    
    $("#xml").load("myurlishere/xml.php", {pamameters: 25}, function(data)
    {
       alert("Data Loaded"+data);
    });
    

    看看http://api.jquery.com/load/

    【讨论】:

    • 我尝试在上面这样做,它会发出负载警报,但不显示任何数据,并且在萤火虫中,xml 提要仍然像旋转和超时
    • 请发布来自 firebug 的整个获取请求
    • 你用哪些参数调用了上面的脚本?用 myurlishere/xml.php 还是别的什么?
    【解决方案5】:

    在您尝试访问的脚本中... 在您打印出任何 XML 数据之前,您是否输出了 XML 标头?即:

    header("Content-Type:text/xml");

    =====

    要解决域问题,请在您的服务器上创建一个 .php 文件,如下所示:

    <?php
    
    $xml = file_get_contents("http://www.the_other_domain.com/feed.xml");
    
    echo $xml;
    
    ?>
    

    然后将您的 AJAX 调用指向它。

    【讨论】:

    • 我不确定我无法访问实际生成提要的内容,这是我尝试通过第 1 行第 38 列验证它时得到的结果:未定义的根元素:响应 help center w3.org.
    猜你喜欢
    • 2019-05-18
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多