经过几天的网络浏览并尝试了所有可能的事情后,我才知道我的主机服务器存在问题。它被我的主机服务器禁用。所以,我想在Stackoverflow上发布我的代码,所以,没有其他人像我那样浪费时间。
代码段在IE,Safari,Mozilla和Chrome上运行得非常好。
答案 0 :(得分:1)
客户端的Javascript代码
<script type='text/javascript'>
// function for making an object for making AJAX request
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err3) {
req = false;
}
}
}
return req;
}
var http899 = getXMLHTTPRequest();
function searchFabIndia() {
var myurl = "http://my2nddomain.com/yebhi.php";
myRand = parseInt(Math.random()*999999999999999);
var modurl = myurl+"?rand="+myRand;
http899.open("GET", modurl, true);
http899.onreadystatechange = useHttpResponse899;
http899.send(null);
}
function useHttpResponse899() {
if (http899.readyState == 4) {
if(http899.status == 200) {
// do all processings with the obtained values / response here
}
}
}
</script>
<body onload='searchFabIndia();'>
服务器端所需的部分代码。您需要设置可以请求页面内容,允许方法和标题的原点(引用者)。这些设置可以存储在.htaccess文件中,用于您要求的第二个域上的所有文件,或者,您可以将它们放在特定的PHP文件中,如下所示: -
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");
header("Access-Control-Max-Age: 18000");
// Put it in your PHP file
?>
否则,您可以在.htaccess文件中提及整个域/子域的这些设置,如下所示: -
<IfModule mod_headers.c>
<FilesMatch "\.(php)$">
Header set Access-Control-Allow-Origin: *
Header set Access-Control-Allow-Methods : POST,GET,OPTIONS,PUT,DELETE
</FilesMatch>
</IfModule>
同样不是所有引用者的通配符允许有时是不必要的,因此,在这种情况下,您可以通过命名它们来指定特定的域/子域,每个域用逗号(,)分隔,如图所示
Header set Access-Control-Allow-Origin: http://abc.com,http://def.com,http://ghi.com
如果您在实施任何这些方面遇到一些困难,请发表评论。你可以看到我提到的here
的现场演示