无为清净楼资源网 Design By www.qnjia.com
这两天需要实现三级域名直接url rewrite到网站静态页面,如 http://123.456.789.com/ UrlRewrite到http://www.789.com/news/123.html

说到这里,也许和js跨域访问没有半点关系,在脑海里排列这的问题都是和UrlRewrite相关的。好吧现在URLRewrite一切就绪,直接在浏览器地址栏中输入http://123.456.789.com/ 会发现,这个在地址栏直接通过http://www.789.com/news/123.html来访问的页面出现了异常,网页上的图片和样式还有JS好像都失去了作用。

看看两个地址栏中的URL, 突然拍拍自己脑袋,有点思路了。原来这个页面的源代码中对图片、CSS、JS 都是通过相对路径来请求的。当然这在 直接访问http://www.789.com/news/123.html的路径是不会有问题的,但是当使用http://123.456.789.com/访问后 看看地址栏两个URL 明显路径已经完全不一样了,比如images/1.gif 在1中 相当于请求http://www.789.com/news/1.gif 而再2中变成什么http://123.456.789.com/images/1.gif很显然这个图片你是永远也请求不到。因为这个路径下你永远也找不到这个图片。好了为了简便,我们不用网上别人介绍的很多种方法,就用绝对路径解决吧。好的,一切看起来这么的自然,这么的畅快。但是真正的麻烦还在后边。

一直到这里,好像和我们的标题都不搭噶。别急,问题总是解决一个再冒出第二个。

首先讲讲我这个页面吧,这个页面是通过程序将本来动态呈现的东西进行了静态化,但是静态化页面里边又必须显示一些变化的信息,这里很多人可能会想到使用IFRAME来解决,但是这样的解决办法不是我想使用的,1.IFRAME比起其它方法,效率低,2.IFRAME对爬行蜘蛛不友好。所以我这里最开始是使用JQUERY的load函数还直接去请求动态页面然后将返回来的动态信息显示在静态化页面里。好了,讲到这里可能有些朋友已经知道为什么这篇日记的名字叫“jquery跨域访问问题”了。

首先看看 jquery load函数里我的参数$("#head").load("http://www.cnblogs.com/project/ajax.php"{"Action":"head"}); 当然通过上边的教训 已经将参数换成了$("#head").load("http://www.789.com/project/ajax.php"{"Action":"head"}); 但是还是出现了“jquery.js 138行无权访问”直接跑去查看juqery138行 哄哄原来是load函数这里出问题(没看懂源码,说实话太折磨人了,一堆压缩后的JS代码看得人想死)好吧去网上谷歌一下,有几个人的答案引起了我的注意。他们都说这是JS跨域操作的问题。而本身JS是无法直接跨域操作的。再联系自己三级域名URLRewrite 再想想跨域的问题,三级域名下 所在的域是789 下的456 下的123 而本身请求的是789.com域名下 所以这不是跨域是什么呢?豁然开朗。我确定我找到问题所在了。

继续谷歌,很多人推荐jquery getJson使用回调函数解决,关于原理等解决了再慢慢研究,呵呵继续搜http://blog.ossxp.com/2010/02/462/这篇文章很好给了我很大帮助,直接在自己项目中还是依葫芦画瓢。问题解决!

 html页面 jquery代码
复制代码 代码如下:
$.getJSON("http://www.789.com/project/ajax.php?Action=head&callback=?",
function(data){ // 往后台传递的参数1;
var html = decodeURI(data.str)
$('#head').html(html); //调用用来显示内容的div
});

服务器端PHP代码
复制代码 代码如下:
$str = "<ul>
this is test
</ul>";
$arr['str'] = $str;
$json = json_encode($arr); //用Json_encode函数处理php的数组
echo $_GET['callback']."(".$json.")";

到此通过三级域名URLREWRITE到静态化页面跨域访问服务器动态类容问题圆满解决!
标签:
跨域访问

无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。