javascript可以请求承载xdr的域吗?

javascript可以请求承载xdr的域吗?,javascript,ajax,jquery,Javascript,Ajax,Jquery,我制作了一个.js程序,它可以在我自己的页面上制作baners(每个页面都发布在不同的服务器上)。我正在使用运行它。 问题是,我的脚本向主服务器(承载带有脚本的文件)请求一些变量,然后我收到一条消息: 访问控制不允许原点允许原点 我无法在我使用的服务器上启用访问控制允许源代码,但这不是解决它的某种方法吗?我的意思是,此脚本托管在请求的服务器上 -------------SERVER1--------------server-first.com--------------- script.js文件

我制作了一个.js程序,它可以在我自己的页面上制作baners(每个页面都发布在不同的服务器上)。我正在使用
运行它。 问题是,我的脚本向主服务器(承载带有脚本的文件)请求一些变量,然后我收到一条消息:

访问控制不允许原点允许原点

我无法在我使用的服务器上启用访问控制允许源代码,但这不是解决它的某种方法吗?我的意思是,此脚本托管在请求的服务器上

-------------SERVER1--------------server-first.com---------------

script.js文件:

var xmlhttp;
if (window.XMLHttpRequest)    {
   xmlhttp=new XMLHttpRequest();
}else{
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
   if (xmlhttp.readyState==4 && xmlhttp.status==200){
      return xmlhttp.responseText.split("#");
   }
}
xmlhttp.open("GET","http://server-first.com/page.php?action=getVariables",true);
xmlhttp.send();
page.php文件:

if($_GET['action']=='getVariables'){
    echo $var1 . "#" . $var2;
}
-------------SERVER2--------------second-server.com---------------



如果域名不相同,您不能从一个站点向另一个站点发出请求。

您的下一个求助渠道可能是JSONP

我通常不使用它,但我的想法是:

// dosomething.js -- script that's already on page
var doSomething = function (obj) {
    doStuff(obj);
};


// getdata.js script that's on another server
doSomething({ name : "...", id : 1234 });


var script = document.createElement("script"),
    parent = document.getElementsByTagName("script")[0].parentNode,
    src = "//otherserver.com/getdata.js";

script.src = src;
parent.appendChild(script);
现在,您已经创建了另一个脚本文件,设置了源(您可以在其中添加所需的任何查询数据),并将其附加到第一个脚本元素所属的任何元素(通常为head或body)。 当该脚本文件加载时,它将调用
doSomething()
,使用您在其中放置的任何内容

因此,为了从逻辑上得出结论,您可以将服务器设置为将
.js
扩展名视为PHP(或者有选择地,如果文件实际上不存在),或者您可以从JavaScript方面请求
“//otherserver.com/getdata.PHP”
。然后,您就可以从php端访问您需要做的任何事情。只需回显
echo“doSomething(“…”);”

您可以在查询字符串中接受一个“callback”参数,这样您就可以告诉文件需要在JS页面上启动的函数的名称


此外,如果要使用
.php
扩展名,则应确保将
内容类型
标题设置为javascript,而不是文本或html。

通常不允许使用不同的域,但有办法做到这一点。您可能需要在服务器上查看HTTP响应头的设置,以便进行更新。如前所述,如果你不能设置它,那么你可能运气不佳。为您提供了一些很好的参考XDR=。它与AJAX有什么关系?
// dosomething.js -- script that's already on page
var doSomething = function (obj) {
    doStuff(obj);
};


// getdata.js script that's on another server
doSomething({ name : "...", id : 1234 });


var script = document.createElement("script"),
    parent = document.getElementsByTagName("script")[0].parentNode,
    src = "//otherserver.com/getdata.js";

script.src = src;
parent.appendChild(script);