我正在尝试获取网站的页面流行度
<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);
}
});
我做错了什么?
我会这样构造它:
$.get(ajax_url, data, function(response) {
alert(response);
});
另外,我认为您希望对数据执行
get
(而不是 $.post
然后稍后指定 get
)。
我想这是因为您正在尝试加载不是来自您的域的 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 文件包装在您自己的服务器上并从那里加载它。
请参阅此问题的示例: