使用JQuery进行跨域请求


Posted in Javascript onJanuary 25, 2010
以上程序是今天偶然看到的,分享一下!
原文地址:  Cross-domain-request-with-jquery
当然,还有以上的那个 Demo,我直接拿过来改了下,原地址:Demo

$(document).ready(function(){ 
var container = $('#target'); 
container.attr('tabIndex','-1'); 
$('.ajaxtrigger').click(function(){ 
var trigger = $(this); 
var url = trigger.attr('href'); 
if(!trigger.hasClass('loaded')){ 
trigger.append('<span></span>'); 
trigger.addClass('loaded'); 
var msg = trigger.find('span::last'); 
} else { 
var msg = trigger.find('span::last'); 
} 
doAjax(url,msg,container); 
return false; 
}); function doAjax(url,msg,container){ 
// if the URL starts with http 
if(url.match('^http')){ 
// assemble the YQL call 
msg.removeClass('error'); 
msg.html(' (loading...)'); 
$.getJSON("http://query.yahooapis.com/v1/public/yql?"+ 
"q=select%20*%20from%20html%20where%20url%3D%22"+ 
encodeURIComponent(url)+ 
"%22&format=xml'&callback=?", 
function(data){ 
if(data.results[0]){ 
var data = filterData(data.results[0]); 
msg.html(' (ready.)'); 
container. 
html(data). 
focus(). 
effect("highlight",{},1000); 
} else { 
msg.html(' (error!)'); 
msg.addClass('error'); 
var errormsg = '<p>Error: could not load the page.</p>'; 
container. 
html(errormsg). 
focus(). 
effect('highlight',{color:'#c00'},1000); 
} 
} 
); 
} else { 
$.ajax({ 
url: url, 
timeout:5000, 
success: function(data){ 
msg.html(' (ready.)'); 
container. 
html(data). 
focus(). 
effect("highlight",{},1000); 
}, 
error: function(req,error){ 
msg.html(' (error!)'); 
msg.addClass('error'); 
if(error === 'error'){error = req.statusText;} 
var errormsg = 'There was a communication error: '+error; 
container. 
html(errormsg). 
focus(). 
effect('highlight',{color:'#c00'},1000); 
}, 
beforeSend: function(data){ 
msg.removeClass('error'); 
msg.html(' (loading...)'); 
} 
}); 
} 
} 
function filterData(data){ 
// filter all the nasties out 
// no body tags 
data = data.replace(/<?\/body[^>]*>/g,''); 
// no linebreaks 
data = data.replace(/[\r|\n]+/g,''); 
// no comments 
data = data.replace(/<--[\S\s]*?-->/g,''); 
// no noscript blocks 
data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g,''); 
// no script blocks 
data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g,''); 
// no self closing scripts 
data = data.replace(/<script.*\/>/,''); 
// [... add as needed ...] 
return data; 
} 
});
Javascript 相关文章推荐
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
Jun 26 Javascript
javascritp添加url参数将参数加入到url中
Sep 25 Javascript
JavaScript中常用的验证reg
Oct 13 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
Angular.js中处理页面闪烁的方法详解
Mar 09 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
Jun 19 Javascript
利用three.js画一个3D立体的正方体示例代码
Nov 19 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
npm 下载指定版本的组件方法
May 17 Javascript
在layui下对元素进行事件绑定的实例
Sep 06 Javascript
如何通过shell脚本自动生成vue文件详解
Sep 10 Javascript
Vue如何提升首屏加载速度实例解析
Jun 25 Javascript
javascript 的Document属性和方法集合
Jan 25 #Javascript
起点页面传值js,有空研究学习下
Jan 25 #Javascript
js 巧妙去除数组中的重复项
Jan 25 #Javascript
将函数的实际参数转换成数组的方法
Jan 25 #Javascript
javascript中利用数组实现的循环队列代码
Jan 24 #Javascript
document.getElementById为空或不是对象的解决方法
Jan 24 #Javascript
JavaScript 未结束的字符串常量常见解决方法
Jan 24 #Javascript
You might like
PHP树的代码,可以嵌套任意层
2006/10/09 PHP
ajax缓存问题解决途径
2006/12/06 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
JS中处理时间之setUTCMinutes()方法的使用
2015/06/12 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
初学者AngularJS的环境搭建过程
2017/10/27 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
jQuery实现增删改查
2020/12/22 jQuery
Python中的异常处理学习笔记
2015/01/28 Python
对python中的pop函数和append函数详解
2018/05/04 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
python dict乱码如何解决
2020/06/07 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
实习鉴定范文
2013/12/19 职场文书
体育馆的标语
2014/06/24 职场文书
在职证明书模板
2015/06/15 职场文书