为什么这个jQuery Ajax请求失败了?

为什么这个jQuery Ajax请求失败了?,ajax,jquery,Ajax,Jquery,这家公司最近推出了一款小型的。特别是,我对这个项目感兴趣。我试图通过jQuery访问此API,但失败了。如果我的代码有问题,或者这似乎是FCC API的问题,请告诉我 如果在浏览器中访问此API请求,它将返回一个XML响应: 因此,我尝试使用各种方法在jQuery中加载此数据: var url = "http://data.fcc.gov/api/speedtest/find?latitude=30.240236062827297&longitude=-97.64787337499999

这家公司最近推出了一款小型的。特别是,我对这个项目感兴趣。我试图通过jQuery访问此API,但失败了。如果我的代码有问题,或者这似乎是FCC API的问题,请告诉我

如果在浏览器中访问此API请求,它将返回一个XML响应:

因此,我尝试使用各种方法在jQuery中加载此数据:

var url = "http://data.fcc.gov/api/speedtest/find?latitude=30.240236062827297&longitude=-97.64787337499999";

$.ajax({
    type: "GET",
    url: url,
    success: function(data) {
        console.log("ajax: " + data);
    }
});

$.getJSON(url, function(data) {
    console.log("getJSON: " + data);
});

$.get(url, function(data) {
    console.log("get: " + data);
});
在Firebug控制台中,所有三个请求都显示200(OK)状态,但响应主体为空。此外,生成的
console.log
消息包括:

ajax: 
getJSON: null
get: 

我做错什么了吗?

您不能使用AJAX进行跨域调用。它不是那样工作的


您可能想做的是让AJAX查询URL成为您自己服务器上的本地脚本,然后让该脚本运行对API URL的请求(使用cURL或其他方法)

要处理同一来源策略,您需要使用JSONP。通过API。将
callback=?
添加到
.getJSON()
调用中的URL字符串中:

如果URL包含字符串 “callback=?”在URL中,请求 而是作为JSONP处理。见 中jsonp数据类型的讨论 $.ajax()以获取更多详细信息

比如说:

var url = "http://data.fcc.gov/api/speedtest/find?...&callback=?";
$.getJSON(url, function(data) {
  // do stuff
});

参考资料:

我认为不可能进行跨域ajax请求。你可能必须这样做:这就成功了,谢谢!不过,我不得不使用jsoncallback而不是回调。