使用 jquery ajax 未返回 xml 数据

问题描述 投票:0回答:2

我正在尝试获取网站的页面流行度

<POPULARITY URL="google.com/" SOURCE="panel" TEXT="1"/>

使用 Alexa API。如果我发帖

http://data.alexa.com/data?cli=10&dat=snbamz&url=http://www.google.com 

在浏览器中我得到一个 xml 响应,但使用 ajax 我没有得到任何返回

$.ajax({    type: "GET",
            url: "http://data.alexa.com/data?cli=10&dat=snbamz&url=http://www.google.com",
            dataType: "xml",
            cache: false,
            success:function(data){

            alert(data); 

            }

        });

我做错了什么?

jquery ajax xml get alexa-internet
2个回答
0
投票

我会这样构造它:

$.get(ajax_url, data, function(response) {
        alert(response);
  });

另外,我认为您希望对数据执行

get
(而不是
$.post
然后稍后指定
get
)。


0
投票

我想这是因为您正在尝试加载不是来自您的域的 xml 文件。大多数浏览器默认会阻止它,因为它破坏了跨域 JavaScript 规则。

如果您查看开发人员工具中的控制台(大多数浏览器中为 F12),您将看到类似于以下内容的错误:

XMLHttpRequest 无法加载 http://data.alexa.com/data?cli=10&dat=snbamz&url=http://www.google.com&_=1337464540283。 Access-Control-Allow-Origin 不允许 Origin null。

解决此问题的最简单方法(假设您正在运行 PHP)是创建一个小的 php 文件,该文件将 xml 文件包装在您自己的服务器上并从那里加载它。

请参阅此问题的示例:

Ajax:从不同域加载 XML?

© www.soinside.com 2019 - 2024. All rights reserved.