TP6解决跨域问题

article/2025/9/20 0:00:17

项目场景:

使用TP6制作前端小程序的API接口,遇到跨域问题,多方尝试后 已解决

问题描述:

Access to XMLHttpRequest at 'https://www.XXX.com/Api/getData' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

原因分析:

由于是刚接触TP6不久,所以看了一下官方文档-中间件,发现官方已经内置了一个中间件来解决跨域问题:
TP6自带中间件
要是真的能这么简单解决,我也不会记录这个问题了…


解决方案(官方):

按照官方的解决方法,打开 app/middleware.php ,文件末尾加上 \think\middleware\AllowCrossDomain::class

<?php
// 全局中间件定义文件
return [// 全局请求缓存// \think\middleware\CheckRequestCache::class,// 多语言加载// \think\middleware\LoadLangPack::class,// Session初始化// \think\middleware\SessionInit::class// // 跨域请求\think\middleware\AllowCrossDomain::class
];

保存 -->刷新
发现依然没有解决!!!

解决方案(最终):

探索的辛酸泪史就不啰嗦了,直接上解决办法:

方法一

由于直接访问 controller ,它是不允许返回数组的,所以返回成JSON格式的就行。
官方的解决方案也要做,这一方法才生效哦

public function getData(){$db = new Data();$select = $db->select();$select = $select->toArray();return json($select);
}

方法二

直接在函数的开头添加 header(‘Access-Control-Allow-Origin: *’);
这个方法不需要使用官方中间件

public function getData(){header('Access-Control-Allow-Origin: *');$db = new Data();$select = $db->select();$select = $select->toArray();return json($select);
}

至此,跨域问题解决


http://chatgpt.dhexx.cn/article/arHxwXqK.shtml

相关文章

Express解决跨域问题

跨域&#xff1a;指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的&#xff0c;是浏览器对javascript施加的安全限制。 例如&#xff1a;a页面想获取b页面资源&#xff0c;如果a、b页面的协议、域名、端口、子域名不同&#xff0c;所进行的访问行动都是跨域…

IIS解决跨域问题

都知道如果不同源直接访问一些图片及文件的话会直接报错跨域解决的方法也很简单如图&#xff1a; 点击HTTP响应标头 添加 名称&#xff1a;值 Access-Control-Allow-Credentials&#xff1a;true Access-Control-Allow-Headers&#xff1a;origin,x-requested-with,content-typ…

Cors解决跨域问题

问题 问题&#xff1a;axios请求&#xff0c;出现两次request&#xff0c;其中一次Request Method: OPTIONS 原因&#xff1a;跨域原因 跨域问题 什么是跨域 跨域是指跨域名访问&#xff0c;一下情况都属于跨域&#xff1a; 跨域原因说明示例域名不同www.jd.com 与 www.ta…

Nginx 解决跨域问题

什么是跨域 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 nginx解决跨域请求 nginx.config配置 server {listen 80;server_name my.cn.com;location / {proxy_pass http://test.cn.com:8081/test;index index.html index.htm;}locat…

js解决跨域问题

&#x1f4d7;目录 一、同源策略 二、什么是跨域 三、解决跨域 1.Jsonp实现跨域 2.代理的方式 3.CORS &#x1f34a;一、同源策略 所谓同源策略&#xff0c;就是指两个页面具有相同的协议&#xff0c;主机&#xff08;也常说域名&#xff09;&#xff0c;端口&#xff…

Nginx 轻松解决跨域问题

当你遇到跨域问题&#xff0c;不要立刻就选择复制去尝试。请详细看完这篇文章再处理 。我相信它能帮到你。 # 分析前准备&#xff1a; 前端网站地址&#xff1a;http://localhost:8080 服务端网址&#xff1a;http://localhost:59200 首先保证服务端是没有处理跨域的&#…

后端解决跨域问题

前言: 今天前端给我发了一个截图, 当时就蒙了, 这个是啥子问题 跨域了, 叫我解决一下跨域的问题! 这个主要是浏览的约定! 前端调用的后端接口不属于同一个域&#xff08;域名或端口不同&#xff09;&#xff0c;就会产生跨域问题&#xff0c;也就是说你的应用访问了该应用域名…

宝塔面板网站解决跨域问题

宝塔面板网站解决跨域问题解决方案如下 1.如果使用的nginx 打开网站的设置&#xff0c;找到配置文件&#xff0c;添加如下代码 代码如下&#xff1a; add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Credentials true;add_header Access-Control-…

gin解决跨域问题

为什么会出现跨域问题 再非简单请求且跨域的情况下,浏览器会发送OPTIONS预检请求. Preflighted Requests是CORS中一种透明服务器验证机制.预检请求首先需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,其目的就是为了判断实际发送的请求是安全的. 简单请求 简单请求需满…

nginx解决跨域问题

在我们前端开发的过程中, 相信大家都遇到过一个让人头疼的问题,那就是跨域问题. 跨域解决的方式有很多,这里主要讲的是如何来使用 nginx来解决我们所遇到的跨域问题 首先,在我们开始之前,首先要知道跨域是如何产生的: 协议 ip 端口号 这三者有任何一个不同,就会产生跨域问题 了…

Axios解决跨域问题

什么是跨域 首先需要了解到浏览器的同源策略&#xff0c;同源策略是最核心也是最基本的安全功能&#xff0c;缺少同源策略浏览器的正常功能可能会受到影响。同源策略会阻止一个域的javascript脚本和另外一个域的能容进行交互。同源&#xff08;即指在同一个域&#xff09;就是两…

跨域问题的4种解决方案

更多内容&#xff0c;请访问我的 个人博客。 前言 难以置信&#xff0c;我居然被跨域问题折磨了一上午。相信很多程序员都遇到过跨域问题&#xff0c;当然&#xff0c;解决方案也有很多种。但我今天尝试了无数种办法&#xff0c;依旧没有解决。直到最后我媳妇儿给了我个提示&a…

跨域问题常用的三种解决方式

一、什么是跨域?跨域是如何产生的? 同源策略: 浏览器内置的规则&#xff01;是浏览器提供的一种安全机制&#xff0c;限制来自不同源的数据。如果当前页面的URL地址和Ajax的请求地址不同源&#xff0c;浏览器不允许得到服务器的数据&#xff1b; 同源: 协议 http||https、域…

完全二叉树的节点数

目录 Leecode.222完全二叉树的节点数思路分析层序遍历_迭代递归_二叉树的遍历迭代_二叉树的遍历 Leecode.222完全二叉树的节点数 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底…

完全二叉树的节点个数

给你一棵完全二叉树的根节点root&#xff0c;求出该树的节点个数。 完全二叉树的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没有填满之外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位置。若最底…

对二叉树、节点、度之间关系的思考(附图)

二叉树 节点 二叉树中每个元素都称为节点。 度 度的定义&#xff1a;节点所拥有的子树的数目称为该节点的度注意&#xff1a; 叶子节点的度为0 二叉树的度表示节点的子树或直接继承者的数目&#xff0c;二叉树的度是一个子树或单子树。2度是两个孩子&#xff0c;或者左和右…

【二叉树】二叉树中第二小的节点

0x00 题目 给定一个非空特殊的二叉树&#xff0c;每个节点都是 正数 并且每个节点的子节点数量只能为 2 或 0 如果一个节点有两个子节点的话 那么该节点的值等于两个子节点中 较小 的一个 更正式地说&#xff0c; root.val min(root.left.val, root.right.val) 总成立 给出…

求二叉树节点的路径

题目&#xff1a;求二叉树节点的路径 【问题描述】 建立一棵二叉树&#xff0c;编程实现求从根结点到给定结点之间的路径。 【基本要求】 建立一棵以二叉链表形式存储二叉树&#xff0c;以bt指向根结点&#xff0c;p指向任一给定的结点&#xff0c;编程实现“以字符形式输出…

二叉树(根节点到任意结点的路径)

假设二叉树采用二叉链表方式存储&#xff0c; root指向根结点&#xff0c;node 指向二叉树中的一个结点&#xff0c;编写函数 path&#xff0c;计算root到 node 之间的路径&#xff0c;&#xff08;该路径包括root结点和 node 结点&#xff09;。path 函数声明如下&#xff1a;…

计算机二叉树节点计算公式,二叉树节点数该怎么计算?有几种算法?

每一棵二叉树中都有左右两棵子树&#xff0c;子树中又有无数节点&#xff0c;那你们知道子树中的节点该怎么计算吗?快来跟小编了解一下吧。 二叉树算法概念 对于任何一棵二叉树来说&#xff0c;其叶子结点的数目为n0&#xff0c;且其度数为2的结点数n2&#xff0c;则n0n21. 证…