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

Ajax不能跨域请求???试试下面的吧:
注:如果网速较慢,那请耐心等待 js 文件加载完成再测试,否则看不到效果!( 非 iframe 实现!
 
以上程序是今天偶然看到的,分享一下!
原文地址:   Cross-domain-request-with-jquery
当然,还有以上的那个 Demo,我直接拿过来改了下,原地址: Demo
 
ExpandedBlockStart.gif 代码
 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,自己也可以实现...

转载于:https://www.cnblogs.com/music000/archive/2010/01/24/1655301.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值