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。但同源请求不受限制
  • 相关阅读:
    Restful levels &HATEOAS基本介绍~
    跨源资源共享(CORS)概念、实现(用Spring)、起源介绍
    Ubuntu下math库函数编译时未定义问题的解决
    常用软件清单~
    JetBrains PyCharm 专业版激活
    hello1.java内容简单介绍
    hello1 web项目中web.xml作用分析
    hello2 source analisis(notes)
    Servlet filter
    分析helo1项目中的 Web.xml
  • 原文地址:https://www.cnblogs.com/wrhbk/p/14755366.html
Copyright © 2011-2022 走看看