zoukankan      html  css  js  c++  java
  • ajax

    Ajax跨域(AJAX的核心是XMLHttpRequest)
    原生ajax的四个过程: 
    实例化,open,send,onreadystatechange,然后是req,readyState和status。
     
    为什么会发生ajax跨域(同时满足以下三个,可能跨域原因)
    1.浏览器限制
    2.跨域.端口不同/协议不同/ip不同
    3.XHR(XMLHttpRequest)请求类型
     
    解决方法:
    1.代理
    通过后台(ASP、PHP、JAVA、ASP.NET)获取其他域名下的内容,再把获得内容返回到前端,这样因为在同一个域名下,所以就不会出现跨域的问题。
    2.JSONP
    只支持GET请求,返回数据格式必须是json数据
    3.XHR2(XMLHttpRequest Level2)
    (在服务器端响应接口添加2个响应头)
    Access-Control-Allow-Origin: * //*代表任何域。也可以指定地址
    Access-Control-Allow-Methods: POST,GET //支持的方法
    这样在客户端使用常规的ajax即可
     
    总结
    代理实现最麻烦,但使用最广泛,任何支持AJAX的浏览器都可以使用这种方式。
    JSONP相对简单,但只支持GET方式调用。
    XHR2最简单,但只支持HTML5,如果你是移动端开发,可以选择使用XHR2。
     
     
     
    //Jquery
    $.ajax({
    type:"get",
    url:url,
    async:false, //async是异步 sync是同步
    data:{},
    dataType:"json",
    succedd:function(msg){
    },
    error:function(){
    }
    });
     
     
     
     
  • 相关阅读:
    Jquery日历插件e-calendar升级版
    jquery双击事件(dblclick)时,不触发单击事件(click)
    js实现的点击div区域外隐藏div区域
    IE浏览器new Date()带参返回NaN解决方法
    RequireJs中使用layer的问题
    AngularJs规范
    js调用Angular的方法
    游标cursor
    bigint数据类型
    ANSI_NULLS和QUOTED_IDENTIFIER
  • 原文地址:https://www.cnblogs.com/zwtqf/p/8598058.html
Copyright © 2011-2022 走看看