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

  • 相关阅读:
    K8s(2)-部署应用
    Docker-常用命令(7)
    Docker-堆栈stack(6)
    Docker-集群swarm(5)
    Docker-服务(4)
    Docker的概念术语(2)
    k8s(1)-使用kubeadm安装Kubernetes
    Celery-分布式任务队列
    使用Python管理压缩包
    jQuery基础
  • 原文地址:https://www.cnblogs.com/ZengJiaLin/p/11130718.html
Copyright © 2020-2023  润新知