有关ajax跨域问题

写在前面


JQuery ajax支持get方式的跨域,采用了jsonp来完成。完成跨域请求的有两种方式实现。一种是使用Jquery ajax最底层的Api实现跨域的请求,而另一种则是JQuery ajax的高级装。

一、使用Jquery ajax方式


$.ajax({
    url:'http://www.mysite.com/demo.do',  // 跨域URL
    type:'get',
    async:false,
    dataType:'jsonp',
    jsonp: 'jsoncallback', //默认callback
    data: mydata, 
    time:5000,
    beforeSend:function(){
      //jsonp 方式此方法不被触发。原因可能是dataType如果指定为jsonp的话,就已经不是ajax事件了
    },
    success:function(data){
         //客户端jquery预先定义好的callback函数,成功获取跨域服务器上的json数据后,会动态执行这个callback函数 
       if(json.actionErrors.length!=0){ 
             alert(json.actionErrors); 
        } 
        genDynamicContent(qsData,type,json); 
     },
     complete: function(XMLHttpRequest, textStatus){ 
           $.unblockUI({ fadeOut: 10 }); 
     }, 
     error: function(xhr){ 
           //jsonp 方式此方法不被触发
           //请求出错处理 
           alert("请求出错(请检查相关度网络状况.)"); 
     }
 });

二、使用JQuery getJSO方式


$.getJSON("请求的路径=?参数", 
       function(json){ //返回的结果
         if(json.属性名==值){ 
            // 执行代码 
       } 
});

Jsonp的基本原理就是:动态的添加一个一致的。Jsonp是一种脚本的注入(Script InJection)行为,所以,它会有一定的安全性的问题。

同时需要注意Jsonp是不支持post跨域请求的。

转载于:https://www.cnblogs.com/ZengJiaLin/p/11130718.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值