使用jquery ajax不返回xml数据

时间:2012-05-19 21:19:31

标签: jquery xml ajax get alexa

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

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

            }

        });

我做错了什么?

2 个答案:

答案 0 :(得分:0)

我会像这样构建它:

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

此外,我认为您希望为数据get而不是$.post,然后再指定get

答案 1 :(得分:0)

我想这是因为您正在尝试加载不属于您的域的xml文件。大多数浏览器默认会阻止它,因为它违反了跨域javascript规则。

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

  

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

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

以一个例子来看这个问题:

Ajax: Load XML from different domain?