• 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。但同源请求不受限制
  • 相关阅读:
    Java8之Consumer接口
    Java8之Cloneable接口
    Java基础之Iterator接口
    Java基础之Iterable接口
    WPF中窗体在同一个位置实现不同页面切换
    WPF中单选框RadioButton
    WPF中的TextBlock处理长字符串
    WPF中Canvas使用
    WPF中窗体调用窗体
    WPF中HyperLink超链接的使用
  • 原文地址:https://www.cnblogs.com/wrhbk/p/14755366.html
Copyright © 2020-2023  润新知