位置: 编程技术 - 正文

laravel如何开启跨域功能示例详解(laravel技巧)

编辑:rootadmin

推荐整理分享laravel如何开启跨域功能示例详解(laravel技巧),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:laravel启动流程,laravel技巧,laravel技巧,laravel技巧,laravel 入门教程,laravel调试,laravel实战教程,laravel技巧,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

本文主要给大家介绍了关于laravel开启跨域功能的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

跨域的请求

出于安全性的原因,浏览器会限制 Script 中的跨域请求。由于 XMLHttpRequest 遵循同源策略,所有使用 XMLHttpRequest 构造 HTTP 请求的应用只能访问自己的域名,如果需要构造跨域的请求,那么开发者需要配合浏览器做出一些允许跨域的配置。

W3C 应用工作组推荐了一种跨资源共享的机制,这种机制让 Web 应用服务器能支持跨站访问控制,从而使得安全的进行跨站数据传输成为可能,该机制通过几种方式来对原有模式进行了扩展:

响应的头部应该追加 Access-Control-Allow-Orign,用来表明哪些请求源被允许访问资源内容 浏览器会对请求源和响应中的值进行匹配验证 对于跨域的请求,浏览器会预发送一个非简单方式的请求,来判断给定资源是否准备接受跨域资源访问 服务端应用通过检查请求头部的 Orign 来判定请求是否跨域。

跨源资源共享标准

laravel如何开启跨域功能示例详解(laravel技巧)

跨源资源共享标准通过新增一系列 HTTP 头,让服务器能声明哪些来源可以通过浏览器访问该服务器上的资源。另外,对哪些会对服务器数据造成破坏性响应的 HTTP 请求方法(特别是 GET 以外的 HTTP 方法,或者搭配某些 MIME 类型的 POST 请求),标准强烈要求浏览器必须先以 OPTIONS 请求方式发送一个预请求(preflight request),从而获取知服务器端对跨源请求所支持 HTTP 方法。在确认服务器允许跨源请求的情况下,以实际的 HTTP 请求方法发送那个真正的请求。服务器端也可以通知客户端,是不是需要随同请求一起发送信用信息(包括 Cookies 和 HTTP 认证相关数据)。

跨源共享标准需要浏览器和服务端共同配合才能完成,目前浏览器厂商已经可以将请求部分自动完成,所以跨源资源访问的重点还是在于服务器端。

下面列出一些标准中可用的响应头和请求头。

Response Header

Access-Control-Allow-Origin : 指明哪些请求源被允许访问资源,值可以为 "*","null",或者单个源地址。 Access-Control-Allow-Credentials : 指明当请求中省略 creadentials 标识时响应是否暴露。对于预请求来说,它表明实际的请求中可以包含用户凭证。 Access-Control-Expose-Headers : 指明哪些头信息可以安全的暴露给 CORS API 规范的 API。 Access-Control-Max-Age : 指明预请求可以在预请求缓存中存放多久。 Access-Control-Allow-Methods : 对于预请求来说,哪些请求方式可以用于实际的请求。 Access-Control-Allow-Headers : 对于预请求来说,指明了哪些头信息可以用于实际的请求中。 Origin : 指明预请求或者跨域请求的来源。 Access-Control-Request-Method : 对于预请求来说,指明哪些预请求中的请求方式可以被用在实际的请求中。 Access-Control-Request-Headers : 指明预请求中的哪些头信息可以用于实际的请求中。

Request Header

Origin : 表明发送请求或预请求的来源。 Access-Control-Request-Method : 在发送预请求时带该请求头,表明实际的请求将使用的请求方式。 Access-Control-Request-Headers : 在发送预请求时带有该请求头,表明实际的请求将携带的请求头。

中间件

在 Laravel 中允许跨域请求,我们可以构建一个追加响应的中间件,用来添加专门处理跨域的请求的响应头:

其中有以下需要注意的地方:

对于跨域访问并需要伴随认证信息的请求,需要在 XMLHttpRequest 实例中指定 withCredentials 为 true。 这个中间件你可以根据自己的需求进行构建,如果需要在请求中伴随认证信息(包含 cookie,session)那么你就需要指定 Access-Control-Allow-Credentials 为 true, 因为对于预请求来说如果你未指定该响应头,那么浏览器会直接忽略该响应。 在响应中指定 Access-Control-Allow-Credentials 为 true 时,Access-Control-Allow-Origin 不能指定为 * 后置中间件只有在正常响应时才会被追加响应头,而如果出现异常,这时响应是不会经过中间件的。

总结

标签: laravel技巧

本文链接地址:https://www.jiuchutong.com/biancheng/289962.html 转载请保留说明!

上一篇:Laravel构建即时应用的一种实现方法详解(laravel创建项目)

下一篇:php数据库的增删改查 php与javascript之间的交互(php数据库删除数据)

  • 职工薪酬分配表及分录怎么做
  • 小规模入账的收入分录
  • 分公司可以独立开银行账户吗
  • 生产成本月末结转到本年利润里吗
  • 一般纳税人季报利润表怎么填
  • 收到假钱的会计分录
  • 单位车转到个人名下要什么材料
  • 材料货款会计分录怎么做
  • 提取职工福利费计入什么科目
  • 个体户核定征收超过了怎么办
  • 会计如何做调整会计分录
  • 专项应付款增加记哪方
  • 上月开的红字发票本月可以作废吗
  • 股东的房产无偿提供给公司用
  • 2018新个税
  • 健身器材属于哪个部门管理
  • 制造费用月末怎么结转到生产成本
  • 短期借款利息的处理
  • qqpcrtp.exe是什么进程 如何删除qqpcrtp进程
  • 预提费用利息会增加吗
  • u盘装系统?
  • 个体户升一般纳税人分红怎么交税
  • 王者荣耀中廉颇是哪一个族的族长
  • 如何去掉电脑桌面背景图
  • 分批供货付款方式
  • php更新数据
  • 为员工购买商业保险的通知
  • 进程aissca.exe
  • 土地价款会计分录
  • vue 百度地图 移动端
  • 补计提去年所得税费用会计分录
  • php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
  • nerf 入门
  • 27岁零基础转行做网络工程师
  • php搜索功能怎么实现
  • 简单的画
  • 现金流量表期初现金余额怎么计算
  • 本年利润借方红字代表什么意思
  • 差旅费过路费会计分录
  • python中线程可以用在哪些方面
  • 税金及附加算什么
  • dict在python中的作用
  • mongodb createindex
  • c语言缺省值
  • 转回存货跌价准备的会计分录
  • 预收款销售商品如何与业务员对账
  • 未认证和未抵扣的区别
  • 土地增值税间接转让怎么算
  • 公司公账转私账违法吗
  • 补贴费用申请书怎么写
  • 预付费用款项现金流量怎么算
  • 上年未结转金额是什么意思
  • 金蝶软件kis标准版操作流程
  • 专票和普票的区别税点差多少
  • 商业成本会计如何记账
  • 冲减以前年度未开票收入开票如何申报小规模纳税人
  • 企业如何建账之类的账目
  • windows8命令提示符命令大全
  • xp系统打印任务一闪就没有了
  • win7系统只有一个鼠标箭头然后重启
  • ubuntu设置启动项
  • ubuntu独立显卡黑屏
  • win7系统如何配置ip地址
  • win11玩dota2
  • xp创建VPN连接图文教程
  • exgear是什么
  • cocos2d原理
  • style js
  • javascript编程语言
  • 简单的移动端项目
  • js常用继承
  • javascript面向对象编程指南
  • jquery1.11.3
  • apple开发
  • 如何建立守信联系
  • 教育培训机构都交哪些税
  • 国家税务局何时上班
  • 新三步走和旧三步走的异同点
  • 福建税务局电子税务局电话多少
  • 差额开票扣除额多补税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设