利用jsonp实现跨域登陆

前端之家收集整理的这篇文章主要介绍了利用jsonp实现跨域登陆前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. <scripttype="text/javascript"src="js/jquery-1.9.1.js"></script>
  2. <script>
  3. $(function(){
  4. $.ajax({
  5. url:'http://www.xxx.com/users/syncLogin',type:"GET",dataType:"jsonp",jsonp:'callback',success:function(data){
  6. document.cookie="ECS_ID="+data.id;
  7. alert(data.id);
  8. }
  9. });
  10. });
  11. </script>
  1. publicfunctionsyncLogin(){
  2. $this->autoRender=false;
  3. $callback=$_GET['callback'];
  4. echo$callback.'('.json_encode(array('id'=>$_COOKIE[ECS_ID])).')';
  5. }

第二版:第一版cookie改变后需要刷新才生效

  1. $.ajax({
  2. url:'http://www.xxx.com/users/syncLogin',success:function(data){
  3. varcookie_str=document.cookie;
  4. vardate=newDate();
  5. date.setTime(date.getTime()+365*24*3600*1000);
  6. document.cookie="ECS_ID="+data.id+";expires="+date.toGMTString();
  7. cookie_str=cookie_str.replace(/;/g,';');
  8. varcookie_array=cookie_str.split(';');
  9. for(vari=0,len=cookie_array.length;i<len;i++){
  10. if(cookie_array[i].split('=')[0]=='ECS_ID'){
  11. if(cookie_array[i].split('=')[1]!=data.id+''){
  12. location.reload(1);
  13. }
  14. }
  15. }
  16. }
  17. });

第三版:提取function

  1. functionsetCookie(c_name,value,expiredays)
  2. {
  3. varexdate=newDate();
  4. exdate.setDate(exdate.getDate()+expiredays);
  5. document.cookie=c_name+"="+escape(value)+
  6. ((expiredays==null)?"":";expires="+exdate.toGMTString());
  7. }
  8. functiongetCookie(c_name)
  9. {
  10. varcookie=document.cookie;
  11. varcookie_len=document.cookie.length;
  12. if(cookie_len>0){
  13. c_start=cookie.indexOf(c_name+"=")
  14. if(c_start!=-1){
  15. c_start=c_start+c_name.length+1;
  16. c_end=cookie.indexOf(";",c_start);
  17. if(c_end==-1){
  18. c_end=cookie_len;
  19. }
  20. returnunescape(cookie.substring(c_start,c_end));
  21. }
  22. }
  23. return"";
  24. }
  25. $.ajax({
  26. url:'http://www.xxx.com/users/syncLogin',success:function(data){
  27. varcookie_str=document.cookie;
  28. varcookie_ecs_id=getCookie('ECS_ID');
  29. setCookie('ECS_ID',data.id,365);
  30. if(cookie_ecs_id!=data.id+''){
  31. location.reload(1);
  32. }
  33. }
  34. });

猜你在找的Json相关文章