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 相关文章推荐
JS下拉框内容左右移动效果的具体实现
Jul 10 Javascript
js控制鼠标事件移动及移出效果显示
Oct 19 Javascript
jQuery学习笔记之2个小技巧
Jan 19 Javascript
自定义百度分享的分享按钮
Mar 18 Javascript
浏览器复制插件zeroclipboard使用指南
Mar 26 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
js表单序列化判断空值的实例
Sep 22 Javascript
详解使用路由延迟加载 Angular 模块
Oct 12 Javascript
基于JavaScript中标识符的命名规则介绍
Jan 06 Javascript
如何测量vue应用运行时的性能
Jun 21 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 Javascript
javaScript实现一个队列的方法
Jul 14 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
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
用js解决数字不能换行问题
2010/08/10 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
对python多线程与global变量详解
2018/11/09 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
pytorch中的inference使用实例
2020/02/20 Python
python中线程和进程有何区别
2020/06/17 Python
python中二分查找法的实现方法
2020/12/06 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
公益活动邀请函
2014/02/05 职场文书
入学申请自荐信范文
2014/02/26 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
活动新闻稿范文
2015/07/17 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server