CORS 跨站请求

cors 跨域请求简介

HTML5 标准中,明确了针对浏览器(javascript中)跨域请求(CORS)的标准。

通过服务器特定的响应头来设置跨域内容。 其中必须包含的内容:

  • Access-Control-Allow-Origin: 跨域请求来源,即前端网站地址)和
  • Access-Control-Allow-Methods: 允许的请求方式

示例显示

Access-Control-Allow-Origin : your.domain
Access-Control-Allow-Methods : GET,POST,PUT,DELETE
Access-Control-Allow-Headers : x-requested-with,accept,content-type,session-id,token

提示: 浏览器端可使用yyfjs前端库方便处理跨域请求(优化跨域请求预处理,支持cookie)

服务器端跨域配置

YYF默认对跨域提供了支持,同时提供了方便的配置方便自由调整。 并允许生产环境和开发环境使用不同的配置

配置中即为CORS相关配置

cors.Access-Control-Allow-xxx

同时提供了原生CORS协议不支持的方式

  • 多域名支持逗号分割: `Access-Control-Allow-Origin = "site1.your.domain,site2.your.domain"
  • 泛域名cookie支持

提示: * 设置为允许的请求源,是不安全的方式,生产环境指明请求源最佳。

服务器端

CORS请求默认不允许使用cookie(上传到服务器端),需要在服务器端设置

Access-Control-Allow-Credentials : true

才能开启cookie(虽然cors协议做此设置不支持泛域名*,但是YYF中响应时做了些hack支持此配置,)

客户端

XMLHttpRequest默认允许设置cookie。 需要设置参数Credentials=true才可。

当使用yyfjs时,如下配置即可自动使用cookie:

YYF({
    cookie:true,
});
Copyright © NewFuture 2016 all right reserved,powered by Gitbook上次修改时间: 2019-10-06 07:22:49

results matching ""

    No results matching ""