使用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 相关文章推荐
javascript indexOf函数使用说明
Jul 03 Javascript
使用js获取图片原始尺寸
Dec 03 Javascript
AngularJS语法详解(续)
Jan 23 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
Jun 09 Javascript
JavaScript为事件句柄绑定监听函数实例详解
Dec 15 Javascript
js操作数据库实现注册和登陆的简单实例
May 26 Javascript
jQuery层级选择器实例代码
Feb 06 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
详解Angular 4 表单快速入门
Jun 05 Javascript
vue webpack实用技巧总结
Apr 24 Javascript
Vue组件创建和传值的方法
Aug 17 Javascript
浅谈关于vue中scss公用的解决方案
Dec 02 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 array操作10个小技巧分享
2011/06/23 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
Python中文竖排显示的方法
2015/07/28 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
tensorflow的计算图总结
2020/01/12 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
真诚的求职信
2014/07/04 职场文书
2015新员工工作总结范文
2015/10/15 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python