jquery 跨域访问问题解决方法(笔记)


Posted in Javascript onJune 08, 2011

这两天需要实现三级域名直接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到静态化页面跨域访问服务器动态类容问题圆满解决!
Javascript 相关文章推荐
一个不错的用JavaScript实现的UBB编码函数
Mar 09 Javascript
iframe里的页面禁止右键事件的方法
Jun 10 Javascript
JavaScript中操作字符串小结
May 04 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
Mar 08 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
Vue插件写、用详解(附demo)
Mar 20 Javascript
JavaScript之promise_动力节点Java学院整理
Jul 03 Javascript
详解 vue better-scroll滚动插件排坑
Feb 08 Javascript
vue使用技巧及vue项目中遇到的问题
Jun 04 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
Sep 27 Javascript
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
JS前端使用canvas实现扩展物体类和事件派发
Aug 05 Javascript
精通Javascript系列之数据类型 字符串
Jun 08 #Javascript
精通Javascript系列之Javascript基础篇
Jun 07 #Javascript
精通Javascript系列之数值计算
Jun 07 #Javascript
jQuery 源码分析笔记(4) Ready函数
Jun 02 #Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 #Javascript
JqGrid web打印实现代码
May 31 #Javascript
16个最流行的JavaScript框架[推荐]
May 29 #Javascript
You might like
PHP使用者状态管理功能的应用
2006/10/09 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
使用prototype.js进行异步操作
2007/02/07 Javascript
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
offsetParent 算法分析
2010/04/05 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
Python内置函数reversed()用法分析
2018/03/20 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
python脚本开机自启的实现方法
2019/06/28 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
Python命令行参数定义及需要注意的地方
2020/11/30 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
大学社团活动策划书
2014/01/26 职场文书
高考标语大全
2014/06/05 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
家长通知书家长意见
2014/12/30 职场文书
博士论文答辩开场白
2015/06/01 职场文书