• Ajax跨域CORS


    在Ajax2.0中多了CORS允许我们跨域,但是其中有着几种的限制:Origin、Methods、Headers、Credentials

    1.Origin

    当浏览器用Ajax跨域请求的时候,会带上一个请求头“Origin: 协议://页面域名”,而服务器需要返回一个响应头“Access-Control-Allow-Origin: 协议://对应域名,如果Origin和Access-Control-Allow-Origin不同,浏览器就会报错,服务器返回的信息也会被浏览器禁止使用

    2.Methods

    默认允许跨域的方法只有三种:GET、POST和HEAD

    很多时候我们会用到一些Resful接口,method会涉及到PUT、DELETE等等,这个时候CORS要求服务器增加响应头”Access-Control-Allow-Methods: PUT,DELETE“

    3.Headers

    CORS默认有些请求头是不允许的例如自定义请求头 和 content-type

    如果我们遇到一些情况需要增加一些自定义的请求头,CORS要求服务器增加响应头”Access-Control-Allow-Headers: 自定义请求头,content-type“

    4.credentials

    CORS默认是不允许跨域发送COOKIES

    如果我们想跨域发送COOKIES,我们需要在前端页面设置xhr.withCredentials=true,服务器增加响应头”Access-Control-Allow-Credentials: true“

    浏览器表现的差异

    1. 当跨域请求是"非简单请求"的时候(详情看阮老师的文章),浏览器会先发送一个 OPTIONS "预检"请求,新版 Chrome 已经不会发了,Firefox 还是会发 OPTIONS

    2. 上面 4 中 Access-Control-Allow-xxx Chrome 都兼容 星号(*),但是 Firefox 只允许 Origin 写 星号(*)。

  • 相关阅读:
    activiti5.13 框架 数据库表结构说明
    c3p0详细配置
    linux+nginx+tomcat负载均衡,实现session同步
    Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群
    java jstack dump 线程 介绍 解释
    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
    CheckStyle使用手册(一)
    checkstyle使用介绍
    memcache启动多个服务
    temp
  • 原文地址:https://www.cnblogs.com/amiezhang/p/9284762.html
Copyright © 2020-2023  润新知