.getJSON有效,.get没有

时间:2013-01-25 00:20:13

标签: javascript json xmlhttprequest getjson cross-domain-policy

我有一个函数,它使用.getJSON从服务器获取JSON文件,从中获取一些数据(url是数据的一部分),然后调用另一个需要从解析的URL中获取信息的函数(简单的简HTML页面)。

var jsonurl = "http://server.company.com/file.json"    
$.getJSON(jsonurl, function(data){
  //do some stuff, then call the below function

$.get("http://server.company.com/sub/dir/file.html", function(data){
    alert(data);  //this never fires
});

JSON部分正在进行中。 HTML部分没有做任何事情。根据Firebug,似乎页面正确返回(200),但我没有得到任何数据。

JSON文件和其他纯HTML页面位于同一台服务器上,只是不同的目录,因此我认为这不是域相关问题。我最初尝试使用;

var req = new XMLHttpRequest();  
req.open("GET", "http://server.company.com/sub/dir/file.html", false);  
req.send(); 

但由于某种原因,Firefox和Chrome都在req.send()上咆哮。我的研究让我认为这是一个(跨域)相关问题 - 浏览器认为该页面在其域外请求数据(所有各方都在以“company.com”结尾的同一域中)。

为什么我的$ .get无效和/或如何摆脱XMLHttpRequest.send()错误?

1 个答案:

答案 0 :(得分:1)

跨域ajax仅适用于JSONP,由getJSON函数使用。