uni-app(vue)在thinkphp下的跨域问题解决方案

本文介绍了如何在uni-app前端和thinkphp5.0后端实现跨域请求。前端通过设置Content-Type为'application/x-www-form-urlencoded'发起POST请求,后端在入口文件index.php中配置允许跨域的头部信息,包括允许的来源、请求方式等。需要注意的是,实际项目中应限制跨域源以提高安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最简单的一种,后端和前端分别做处理。

前端(即uni-app或者基于vue的H5):在请求中将Content-Type设置为'application/x-www-form-urlencoded,Uni-app如下(Content-Type注意大小写):

uni.request({
            url:abc.cn,
            method:'POST',
            header: {'Content-Type': 'application/x-www-form-urlencoded'},
            data:params,
            success:function(res) {
                // do something
            }
 })

后端(基于thinkphp 5.0):在根目录的public目录下,在index.php入口文件里加入:

// [ 应用入口文件 ]
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET,POST');

// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

注意:header('Access-Control-Allow-Origin: *')里的*为通配符,代表允许所有域名跨域调用,安全性很低。实际项目请根据访问地址允许有限域名访问,如:

header('Access-Control-Allow-Origin: http://xyz.com');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值