使用JQuery進(jìn)行跨域請求
更新時間:2010年01月25日 23:00:12 作者:
JQuery 進(jìn)行跨域請求實現(xiàn)代碼,需要的朋友可以參考下。
以上程序是今天偶然看到的,分享一下!
當(dāng)然,還有以上的那個 Demo,我直接拿過來改了下,原地址:Demo
復(fù)制代碼 代碼如下:
$(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;
}
});
相關(guān)文章
無語,javascript居然支持中文(unicode)編程!
無語,javascript居然支持中文(unicode)編程!...2007-04-04javascript正則表達(dá)配置擴展名并實現(xiàn)驗證
這篇文章主要介紹了javascript正則表達(dá)配置擴展名并實現(xiàn)驗證,文章圍繞主題展開相關(guān)資料,具有以得參考價值,需要的小伙伴可以參考一下2022-02-02基于bootstrap實現(xiàn)廣告輪播帶圖片和文字效果
這篇文章主要介紹了基于bootstrap實現(xiàn)廣告輪播帶圖片和文字效果,效果非常棒,需要的朋友可以參考下2016-07-07uniapp的webview實現(xiàn)左滑返回上一個頁面操作方法
uniapp默認(rèn)左滑是關(guān)閉整個webview,而不是關(guān)閉當(dāng)前頁,本文給大家介紹uniapp的webview實現(xiàn)左滑返回上一個頁面操作方法,感興趣的朋友一起看看吧2023-12-12JS實現(xiàn)仿新浪黃色經(jīng)典滑動門效果代碼
這篇文章主要介紹了JS實現(xiàn)仿新浪黃色經(jīng)典滑動門效果代碼,是一款非常簡單的經(jīng)典鼠標(biāo)響應(yīng)滑動切換效果,涉及JavaScript基于鼠標(biāo)事件動態(tài)操作頁面元素的技巧,需要的朋友可以參考下2015-09-09