zoukankan      html  css  js  c++  java
  • php 杂项(4)tp6 跨域问题

    前言

      后台代码允许跨域,都是通过为http请求响应增加允许跨域的响应头来实现的.

    原生

      //使用header助手函数设置响应头

          header('Access-Control-Allow-Credentials:true');//响应报头指示的请求的响应是否可以暴露于该页面(前端的请求是否可以携带cookie凭证)。当true值返回时它可以被暴露。
            header('Access-Control-Max-Age:1800');//请求缓存的时间,同一时间类发起相同的直接读取缓存
            header('Access-Control-Allow-Methods:GET, POST, PATCH, PUT, DELETE, OPTIONS');//允许请求的类型
            header('Access-Control-Allow-Headers:Authorization, Content-Type, If-Match');//允许请求头携带的自定义参数,如果你需要在请求头添加参数,那么你需要在这里设置参数字段
            header('Access-Control-Allow-Origin:*');//允许所有域名访问

    tp6

      //在app目录下的middleware.php文件中,添加  hinkmiddlewareAllowCrossDomain::class 类。它就是tp6对原生方法的封装---其本质也是在通过对响应头的设置来实现跨域。

    1. 前端如果要在请求头上添加自定义的字段参数,那么就需要在Access-Control-Allow-Headers字段中设置对应的字段
    2. 前端在发送跨域请求是,如果想携带或者将响应的cookie写入浏览器,必须将请求头字段withCredentials设置为true,否则,将请求无法携带cookie也无法写入响应的cookie。但同源请求不受限制
  • 相关阅读:
    mysql常见的优化方法
    Mac 怎么通过自带终端连接linux服务器
    基于 appium 的 UI 自动化测试
    sourcetree在mac上的使用
    mac下git安装和使用
    mac 上更改环境变量
    Mac环境下svn的使用
    jira常用配置
    influxDB基本操作
    Collectd 和 InfluxDB 的部署和使用
  • 原文地址:https://www.cnblogs.com/wrhbk/p/14755366.html
Copyright © 2011-2022 走看看