使用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 相关文章推荐
jquery如何通过name名称获取当前name的value值
Dec 20 Javascript
Javascript this 关键字 详解
Oct 22 Javascript
jquery实现删除一个元素后面的所有元素功能
Dec 21 Javascript
果断收藏9个Javascript代码高亮脚本
Jan 06 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
Feb 16 Javascript
Bootstrap创建可折叠的组件
Feb 23 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
微信小程序使用swiper组件实现类3D轮播图
Aug 29 Javascript
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
为vue项目自动设置请求状态的配置方法
Jun 09 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
Aug 12 Javascript
Typescript类型系统FLOW静态检查基本规范
May 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
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
python学习开发mock接口
2019/04/28 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
基于python实现查询ip地址来源
2020/06/02 Python
Python实现区域填充的示例代码
2021/02/03 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
营业员演讲稿
2013/12/30 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
幼儿教师国培感言
2014/02/19 职场文书
升学宴答谢词
2015/01/05 职场文书
护士先进个人总结
2015/02/13 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
MySQL分区以及建索引的方法总结
2022/04/13 MySQL