最近有一个跨域加载远程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/


寒林

www.3code.cn 专注WordPress企业主题