当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 使用JQuery进行跨域请求

Javascript
IE6下如何让PNG图片变透明
jQuery教程:制作滑动动画效果的层
JS网页特效代码:切割网页图片特殊效果
正则表达式的高级技巧8个常用的概念
Javascript教程:获取当前地址栏url
百度前端笔试面试7个试题
互联网公司招聘web前端笔试题目
JS实例代码:点击复制地址发给QQ好友
JavaScript动态改变网页图片大小
jQuery实现搜索关键字自动匹配提示方法
JS实例代码解析:以实例方式学习数组知识
Mozilla:让JavaScript脚本直接操作本地文件
JS教程:给JavaScript文件传递参数
JS教程:如何制作表单自动聚焦的网页
通过JS正则表达式实现验证邮件的代码
JQuery教程:简化JQuery
jQuery教程:14个实用的jQuery技巧
JS实例:控制非法字符输入的JS代码
JavaScript实例:mini选择器实例代码详解
JQuery教程:获取网页表单值的方法

Javascript 中的 使用JQuery进行跨域请求


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 190 ::
收藏到网摘: n/a

JQuery 进行跨域请求实现代码,需要的朋友可以参考下。
以上程序是今天偶然看到的,分享一下!
原文地址: 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;
}
});