作家
登录

使用JQuery进行跨域请求

作者: 来源:www.28hudong.com 2013-03-30 01:55:01 阅读 我要评论

以上程序是今天偶然看到的,分享一下! 原文地址: 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(/<--[Ss]*?-->/g,''); // no noscript blocks data = data.replace(/<noscript[^>]*>[Ss]*?</noscript>/g,''); // no script blocks data = data.replace(/<script[^>]*>[Ss]*?</script>/g,''); // no self closing scripts data = data.replace(/<script.*/>/,''); // [... add as needed ...] return data; } });

  推荐阅读

  使用JavaScript库还是自己写代码?

你必须做出决定以这两种方法中的哪一种来写你的JavaScript,为了帮助您作出明智的决定哪个更适合你,我们将对比一下这两种方法的一些优劣。   在过去使用JavaScript库的一个缺点是,库往往相当大,也许包括不少在>>>详细阅读


本文标题:使用JQuery进行跨域请求

地址:http://www.17bianji.com/kaifa2/JS/27180.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)