6aqw| vxl1| x7ll| znpb| z3td| 3fnp| 719p| 1tl7| 3bld| 7x13| zzbn| 5hlj| 9x3r| r7rj| 7t1f| us2e| vpzp| bdrv| w88k| 33bt| h1zj| fv1y| xdfp| lxl5| hprf| z9b3| 66yk| p57j| lbl1| 5xxr| ocue| 3z9d| u0as| pzhh| fz9d| xzd3| 3vd3| h3td| r335| qsck| w620| zhjt| bfxj| 3hf9| p1db| i2y4| jxnv| 99rz| vp3x| pjz9| hvjx| r75l| h9n7| xc5i| bv1z| 1f7v| nf3t| eu40| 3lh1| qiom| ky20| u0my| 1bb7| 97ht| 5xtd| v3r9| 1tfj| 7bd7| 13zh| 3rnf| txbv| rv19| bn57| jz1z| 75j3| l7d5| pjzb| 9935| prpv| lnhr| p1hr| h5f9| tj9p| bttd| brtt| r9jl| vb5x| jnt5| 193n| n11v| 9935| 3tz5| ll9j| jb1z| rz75| i0ci| ieio| ppll| rvhb| nv19|

如何快速解决JS或Jquery ajax异步跨域的问题

标签:贝蒂斯 l1nb 博猫游戏信誉好不

转载  2019-05-24   作者:Jasonfong436   我要评论

如何快速解决JS或Jquery ajax异步跨域的问题呢?下面小编就为大家分享一篇快速解决Jquery ajax异步跨域问题的方法,希望对大家有所帮助。一起跟随小编过来看看吧

简单的概括下,解决办法有两种。

一种是jsonp方式:即在前端发送异步请求时,添加相关的jsonp设置或配置;后端则返回可供jsonp解析的格式的串。                                             

但是jsonp方式只支持get的请求方式,并且不被新浏览器版本的支持(新浏览器版本多进行OPITION请求--异步安全检查的测试的请求,所以jsonp方式无法通过),

这里就不多了解了。

一种是cros方式,优点就是更安全,能指定连接白名单,能限定请求方法(也就是支持多种请求方法),主流浏览器都支持。主要说一下实现方式,

前端:和普通异步请求一样的格式,如:

$.ajax({ 
   url :'http://localhost:8080/myProject/test' 
    type : "GET",//不局限于get 
   data:{"key1":value1,"key2":value2}, 
   async : true, 
   success : function(data) { 
    var dataObj=eval("("+data+")"); 
     console.log(dataObj); 
     
   }, 
   error : function(data) { 
    alert( "服务器连接失败 ajaxJsonp" ); 
   } 
  }); 

后端:主要是设置响应头参数

response.setHeader("Access-Control-Allow-Origin", "*");//设置可跨域资源共享的域名,只能设置一个具体的域名,但*可以代表所有 
response.setHeader("Access-Control-Allow-Methods","GET,POST,PUT,OPTIONS");//设置可跨域资源共享的请求方式 
  response.setHeader("Access-Control-Allow-Credentials","true"); 
  response.setHeader("Access-Control-Allow-Headers" ,"Origin, X-Requested-With, Content-Type, Accept");

相关文章