zoukankan      html  css  js  c++  java
  • 跨域

    跨域:协议、域名、端口、任何一个不一样,都是跨域;

              1、浏览器处于安全的考虑限制

              2、跨域

              3、XHR(XMLHttpRequest)请求    这三个同时满足即为跨域;

    原因:来源于跨域安全策略,默认情况,XHR(XMLHttpRequest)对象只能访问与包含它的页面位于同一个域中的资源,这种安全策略可以预防恶意行为;

    解决思路:只要发出的不是XHR(XMLHttpRequest)请求 ,就不是跨域,      ----JSONP方法;

    JSONP思路:动态的创建script,在script里发出跨域请求;

    JSONP知识补充:JSONP  JSON  with Padding  是json的一种补充;

            使用动态的创建script标签,返回js代码,返回的json对象会被当成js代码处理,会报错;需要后台改动,

    弊端:1、服务器需要改代码;2、只支持GET方法  3、发送的不是XHR请求

    与普通ajax 区别:1、实质不同   ajax的核心是通过xmlHttpRequest获取非本页内容;jsonp的核心是动态添加script标签调用服务器提供的js脚本

                                 2、发送请求的类型不一样:ajax:XHR   ;    JSONP:script

                                 3、返回的类型不一样:ajax:json对象     jsonp:js脚本;

    JSONP书写:

    $.ajax({
         type:"get",    //请求方式
         async:true,    //是否异步
         url:"http://www.domain.net/url",
         dataType:"jsonp",    //跨域json请求一定是jsonp
         jsonp: "callbackparam",    //跨域请求的参数名,默认是callback   自己可以配合后端更改
             //jsonpCallback:"successCallback",    //自定义跨域参数值,回调函数名也是一样,默认为jQuery自动生成的字符串
         data:{"query":"civilnews"},    //请求参数
     
         beforeSend: function() {
    //请求前的处理 }, success: function(data) { //请求成功处理,和本地回调完全一样 }, complete: function() { //请求完成的处理 }, error: function() { //请求出错处理 } });
    复制代码
     
    $.ajax({
          type:"get",                              //请求方式,此处给post仍会以get方式提交 
          dataType:"jsonp",                  //预期服务器返回的数据类型
          jsonp:"callback",                    //在一个jsonp请求中重写回调函数的名字 
          jsonpCallback:"callback",      //为jsonp请求指定一个回调函数名 
          url:"http://127.0.0.1/login",      //请求地址
          data:"{name:'张三',pass:'123456'}", //请求参数 
          success:function (data) {
             //请求成功后的处理 }
          }, 
    'json');

                               

  • 相关阅读:
    如何为新的应用获取更高的关键字排名
    AppStore审核不通过?看看问题出在哪儿
    django 学习-11 Django模型数据模板呈现
    django 学习-10 Django多对多关系模型
    Django学习--9 Admin
    Django学习--9 多对一关系模型
    django 学习-7 模型数据操作
    django 学习-6 定义模型--数据库的使用
    django 学习-5 模板使用流程
    django 学习-4 模板标签
  • 原文地址:https://www.cnblogs.com/yongyang/p/8892708.html
Copyright © 2011-2022 走看看