立即注册 登录
来草原网 返回首页

eagle的个人空间 http://laicaoyuan.com/?1 [收藏] [复制] [分享] [RSS]

日志

jquery 跨域访问

已有 788 次阅读2011-9-22 17:07 |个人分类:php编程| 信息, asp, 解决方案, 用户

最近有一个跨域加载远程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文件实现过程非常简单,扩展性非常性,可以实现非常强大的功能,其它应用可以更深入的实践,供参考。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册
验证问答 换一个 验证码 换一个