使用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 attachEvent绑定多个事件执行顺序问题
Oct 20 Javascript
js使用正则实现ReplaceAll全部替换的方法
Aug 22 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
Nov 23 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
js判断所有表单项不为空则提交表单的实现方法
Sep 09 Javascript
Node.js复制文件的方法示例
Dec 29 Javascript
详解ES6中的代理模式——Proxy
Jan 08 Javascript
使用react render props实现倒计时的示例代码
Dec 06 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 Javascript
JS实现的对象去重功能示例
Jun 04 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
Oct 30 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
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
给Function做的OOP扩展
2009/05/07 Javascript
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
vue的for循环使用方法
2019/02/12 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
详解iframe跨域的几种常用方法(小结)
2019/04/29 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
Python map和reduce函数用法示例
2015/02/26 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
python生成随机红包的实例写法
2019/09/02 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
工程专业毕业生自荐信范文
2013/12/25 职场文书
春游踏青活动方案
2014/08/14 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
初婚未育证明样本
2015/06/18 职场文书
担保书怎么写 ?
2019/04/22 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫