最简单的一种,后端和前端分别做处理。
前端(即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');