使用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 相关文章推荐
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 Javascript
jquery 跨域访问问题解决方法(笔记)
Jun 08 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
Nov 13 Javascript
基于jquery实现简单的手风琴特效
Nov 24 Javascript
Bootstrap每天必学之进度条
Nov 30 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
Feb 02 Javascript
第三章之Bootstrap 表格与按钮功能
Apr 25 Javascript
通过JS获取Request.QueryString()参数的值实现方法
Sep 27 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
Oct 28 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
Node.js的进程管理的深入理解
Jan 09 Javascript
layui自定义ajax左侧三级菜单
Jul 26 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
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
php ios推送(代码)
2013/07/01 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
canvas的神奇用法
2017/02/03 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
python实现人人网登录示例分享
2014/01/19 Python
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
python中threading超线程用法实例分析
2015/05/16 Python
Python 遍历子文件和所有子文件夹的代码实例
2016/12/21 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
JSP&Servlet技术面试题
2015/05/21 面试题
考试没考好检讨书(精选篇)
2014/11/16 职场文书
股份转让协议书范本
2015/01/27 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
焦点访谈观后感
2015/06/11 职场文书
教师节祝酒词
2015/08/11 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP