加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

有关ajax跨域问题

发布时间:2020-12-16 02:45:19 所属栏目:百科 来源:网络整理
导读:JQuery ajax支持get方式的跨域,采用了jsonp来完成。完成跨域请求的有两种方式实现。一种是使用Jquery ajax最底层的Api实现跨域的请求,而另一种则是JQuery ajax的高级封装。 一、使用Jquery ajax方式 $.ajax({ url:'http://www.mysite.com/demo.do',// 跨域

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跨域请求的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读