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

时间:2013-09-24 19:57:07

标签: javascript jquery ajax subdomain

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的答案,但我想要不惜一切代价远离iFrame。

document.domain = "site.com";

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

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

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

1 个答案:

答案 0 :(得分:1)

将网址更正为http://site.com/api/index.php后,请尝试将以下内容添加到api/index.php

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

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