How to make a subdomain ajax call with jQuery (without iFrames)

偶尔善良 提交于 2019-12-11 19:47:30

问题


site.com/api/index.php is where I need the ajax request to go. From site.com/sub/ the request works perfectly but sub.site.com is sending the request to sub.site.com/api/index.php which obviously does not exist... I've Google and StackOverflowed the hell out of the question, but can't seem to find an answer that works.

Code:

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


var request = $.ajax(jQuery_ajax);

The most common answer was to set document.domain to the regular site, but that does not seem to do anything... I've also seen answers talking about iFrames, but I want to stay away from iFrames at all costs.

document.domain = "site.com";

** Note: everything is on the same server.

HACKY SOLUTION: made sub.site.com/api/index.php a file that simply reads

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

回答1:


Once you've corrected the URL to http://site.com/api/index.php try adding the following to api/index.php:

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

e: it's possible that doing so may disallow use from site.com as well; I'm not seeing a way to provide two values, so you may need a way to tell it which site to use, like a ?sub=1 arg to index.php



来源:https://stackoverflow.com/questions/18990872/how-to-make-a-subdomain-ajax-call-with-jquery-without-iframes

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!