分享:使用JQuery进行跨域请求

Ajax不能跨域请求???试试下面的吧:
注:如果网速较慢,那请耐心等待 js 文件加载完成再测试,否则看不到效果!(非 iframe 实现!
 
以上程序是今天偶然看到的,分享一下!
当然,还有以上的那个 Demo,我直接拿过来改了下,原地址:Demo
 
代码
 1   function doAjax(url,msg,container){
 2     // if the URL starts with http
 3     if(url.match('^http')){
 4       // assemble the YQL call
 5       msg.removeClass('error');
 6       msg.html(' (loading...)');
 7       $.getJSON("http://query.yahooapis.com/v1/public/yql?"+
 8                 "q=select%20*%20from%20html%20where%20url%3D%22"+
 9                 encodeURIComponent(url)+
10                 "%22&format=xml'&callback=?",
11         function(data){
12           if(data.results[0]){
13             var data = filterData(data.results[0]);
14             msg.html(' (ready.)');
15             container.
16               html(data).
17                 focus().
18                   effect("highlight",{},1000);
19           } else {
20             msg.html(' (error!)');
21             msg.addClass('error');
22             var errormsg = '<p>Error: could not load the page.</p>';
23             container.
24               html(errormsg).
25                 focus().
26                   effect('highlight',{color:'#c00'},1000);
27           }
28         }
29       );
30     } else {
31       $.ajax({
32         url: url,
33         timeout:5000,
34         success: function(data){
35           msg.html(' (ready.)');
36           container.
37             html(data).
38               focus().
39                 effect("highlight",{},1000);
40         },
41         error: function(req,error){
42           msg.html(' (error!)');
43           msg.addClass('error');
44           if(error === 'error'){error = req.statusText;}
45           var errormsg = 'There was a communication error: '+error;
46             container.
47               html(errormsg).
48                 focus().
49                   effect('highlight',{color:'#c00'},1000);
50         },
51         beforeSend: function(data){
52           msg.removeClass('error');
53           msg.html(' (loading...)');
54         }
55       });
56     }
57   }

 

看看上面的脚本,发现什么?YQL?有兴趣的朋友可以了解下!

看来文章有些“标题党”,完成跨域请求的并不是Jquery,而是YQL!

 

既然可以实现跨域请求,你会想到什么呢?欢迎大家一起探讨!

 

细想一下:利用WebService,自己也可以实现...

posted on 2010-01-24 17:58  music000  阅读(1583)  评论(0编辑  收藏  举报