最近有一个跨域加载远程PHP文件需求,需要将跨域远程的用户信息加载到本地使用,研究和参考相关资料,非常简单,其它后缀类似文件(asp,js)一样。
解决方案如下:
需要两个文件:提供信息的PHP文件(访问的远程文件),加载远程文件的JS文件(获取或处理远程信息)
——————————————————————
infoBox.php(提供远程信息,与JS文件不在同一域)
<?php
$InfoBox = array(‘url’=>’biuuu.com’,’title’=>’必优博客’);
echo ‘var data=’ . json_encode($InfoBox) . ‘;’;
?>
将数据组装数组,通过PHP内置函数json_encode将数组转化成json数组,方便数组内容被远程调用。
——————————————————————
box.js(调用远程PHP文件JS类)
var box = {};
var remoteUrl = ‘http://www.biuuu.com/infoBox.php’;//远程调用URL
box.showBoxInfo = function() {
jQuery.getScript(remoteUrl, function(){
var boxInfoWrapper = jQuery(‘#boxInfoWrapper’);
var html = box.getBoxHtml(data.url,data.title);
boxInfoWrapper.html(html);
});
}
box.getBoxHtml = function(url,title){
return ‘<div><a href=”‘+url+'”>’+title+'</a></div>’;
}
remoteUrl就是前面infoBox.php的远程路径,通过getScript直接调用。其中boxInfoWrapper就是要显示信息 DIV的ID。
——————————————————————
test.html(测试HTML文件,包含JQuery与前面的box.js类)
<script src=”jquery-1.2.6.js” type=”text/javascript”></script>
<script src=”box.js” type=”text/javascript”></script>
<script type=”text/javascript”>
$(document).ready(function (){
box.showBoxInfo();
});
</script>
<div id=”boxInfoWrapper”></div>
jQuery.getScript跨域加载远程PHP文件实现过程非常简单,扩展性非常性,可以实现非常强大的功能,其它应用可以更深入的实践,供参考。
转载自 必优博客 http://www.biuuu.com/