使用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 相关文章推荐
BOM与DOM的区别分析
Oct 26 Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
Jan 13 Javascript
jQuery:节点(插入,复制,替换,删除)操作
Mar 04 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
Apr 17 Javascript
js实现div拖动动画运行轨迹效果代码分享
Aug 27 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
javascript中错误使用var造成undefined
Mar 31 Javascript
vue组件表单数据回显验证及提交的实例代码
Aug 30 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
May 23 Javascript
javascript头像上传代码实例
Sep 28 Javascript
微信小程序换肤功能实现代码(思路详解)
Aug 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 stripos()函数及注意事项的分析
2013/06/08 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
js中的string.format函数代码
2020/08/11 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
vue组件的写法汇总
2018/04/12 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
python批量处理文件或文件夹
2020/07/28 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
性能测试工程师的面试题
2015/02/20 面试题
节电标语大全
2014/06/23 职场文书
财务审计整改报告
2014/11/06 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers