1

我正在尝试获取网站的页面受欢迎程度

<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); 

            }

        });

我究竟做错了什么?

4

2 回答 2

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?

于 2012-05-19T22:04:20.753 回答
0

我会这样构造它:

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

另外,我认为您想为数据做一个get(而不是稍后$.post再指定get)。

于 2012-05-19T21:24:03.137 回答