我有一个函数,它使用 .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() 错误?