如何使用jQuery进行子域ajax调用(没有iFrames)

site.com/api/index.php是我需要ajax请求的地方。 从site.com/sub/请求工作完美,但sub.site.com发送请求到sub.site.com/api/index.php显然不存在…我谷歌和StackOverflowed地狱了问题,但似乎无法找到有效的答案。

码:

var jQuery_ajax = { url: "site.com/api/index.php", type: "POST", data: $.param(urlData), dataType: "json" } var request = $.ajax(jQuery_ajax); 

最常见的答案是将document.domain设置为常规站点,但这似乎没有做任何事情……我也看到了关于iFrames的答案,但我想不惜一切代价远离iFrames。

 document.domain = "site.com"; 

**注意:一切都在同一台服务器上。

HACKY SOLUTION:将sub.site.com/api/index.php设为一个简单读取的文件

 include_once("$path2site/api/index.php"); 

一旦您将URL更正为http://site.com/api/index.php尝试将以下内容添加到api/index.php

header("Access-Control-Allow-Origin: http://sub.site.com");

e:这样做可能也不允许从site.com使用; 我没有看到提供两个值的方法,所以你可能需要一种方法告诉它使用哪个站点,比如一个?sub = 1 arg到index.php