1

我有一个函数,它使用 .getJSON 从服务器获取 JSON 文件,从中获取一些数据(url 是数据的一部分),然后调用另一个需要从解析的 url 中获取信息的函数(普通 Jane 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() 错误?

4

1 回答 1

1

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

于 2013-01-25T19:55:15.127 回答