php 前后端分离开发进行跨域请求时ajax发送验证参数token的header头解决方法

php 前后端分离开发进行跨域请求时ajax发送验证参数token的header头解决方法

php前后端分离开发中要实现前后端参数信息交互,必须解决token标识验证问题。

步骤如下:

1.前端ajax发送请求时,要设置一个自定义header头。代码如下:

$.ajax({
url:”http://www.xxx.com/接口方法”,
type:”get”, //请求方式
dataType:”JSON”, //请求参数格式
data:{id:1,abc:12}, //请求参数
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader(‘Token’, ‘qwertyuuui’); //自定义header头

// XMLHttpRequest.setRequestHeader(自定义header头名称, 参数值);其中参数值可以为json字符串
},
contentType: ‘application/json’,
success: function(data){
alert(‘成功’+data);
},
error : function(jqXHR) {
alert(‘失败’+jqXHR.status);
}
})

2.后端php接收header数据 代码如下:

public funtion 接口方法名称 {
if($_SERVER[‘REQUEST_METHOD’] == ‘OPTIONS’){
// 解决预请求OPTIONS
header(‘Access-Control-Allow-Origin:http://runapi.showdoc.cc’);
header(‘Access-Control-Allow-Headers:Accept,Referer,Host,Keep-Alive,User-Agent,X-Requested-With,Cache-Control,Content-Type,Cookie,Token’);
header(‘Access-Control-Allow-Credentials:true’);
header(‘Access-Control-Allow-Methods:GET,POST,OPTIONS’);
header(‘Access-Control-Max-Age:1728000’);
header(‘Content-Type:text/plain charset=UTF-8’);
header(‘Content-Length: 0’, true);
header(‘status: 200’);
header(‘HTTP/1.0 204 No Content’);
exit;
}else{
// 获取ajax请求header
header(‘Access-Control-Allow-Origin:http://runapi.showdoc.cc’); //允许跨域请求的域名
header(‘Access-Control-Allow-Credentials: true’);
header(“Access-Control-Allow-Methods:GET, POST, PUT,DELETE,POSTIONS”); // 允许跨域请求的方式
header(“Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Connection, User-Agent, Cookie,Token“); // 将前端自定义的header头名称写入,红色部分
}

//获取自定义Token的值 以tp5.1接收方式为例。

$token = Request::header(‘Token‘);

dump($token);

}

注:

1.当token发送成功时,F12浏览器在NetWork下的文件中header内会有Token。如下图所示

php 前后端分离开发进行跨域请求时ajax发送验证参数token的header头解决方法

2.自定义的header头的请求参数可以自己设置,若为数组或者对象,请转化为json字符串

转载作品,原作者:,文章来源:https://blog.csdn.net/pyp_demon/article/details/84166502

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年2月18日 15:37
下一篇 2022年2月20日 14:43

相关推荐

  • PHP中如何使用OCR技术识别图片中的文字

    PHP中如何使用OCR技术识别图片中的文字,tesseract-ocr是一个流行的开源OCR引擎库,它使用C++编写。 PHP作为一种流行的服务器端语言,也提供了一些ocr识别的库和工具。可以通过tesseract-ocr识别PDF、JPEG、GIF、PNG等格式的图像。 tesseract-ocr的最大特点是它是针对多语言设计的,可以识别世界上大部分语言的文本。

    2024年11月4日
    0760
  • PHP使用http_build_query()构造URL字符串的方法

    1、明确需求 实战工作中经常会请求各种各样的接口,例如 • 微信网页授权接口 • 高德周边检索接口 • 发现:下图是根据接口文档开发后的代码,发现代码可读性差(ps. 参数的作用不…

    2021年12月5日 Php
    02220
  • HarmonyOS鸿蒙开发环境配置

    HarmonyOS鸿蒙配置开发环境,应用/服务支持API Version 4至9,首次使用DevEco Studio,工具的配置向导会引导您下载SDK及工具链。配置向导默认下载 API Version 9的SDK及工具链,如需下载API Version 4至8,可在工程配置完成后,进入HarmonyOS SDK界面手动下载,方法如下

    2024年1月19日 编程语言
    0900
  • 使用PHP处理RabbitMQ消息队列的应用

    使用PHP处理RabbitMQ消息队列的应用,消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。

    2024年9月5日
    0620
  • PHP分页技巧:php如何分页读取mysql数据

    分页是一种常见的技术,用于在大量数据中仅显示一部分数据,从而提高网站的性能和用户体验。在PHP中,连接MYSQL数据的方法有PDO和mysqli两种方式,本文通过几个简单的案例代码来介绍PDO和mysqli的分页方式。

    2024年8月26日
    0770
  • php aes加密

    <?php namespace Aes; error_reporting(E_ALL); ini_set(‘display_errors’, ‘1’); class Aes …

    Php 2022年1月17日
    01230

发表回复

登录后才能评论
分享本页
返回顶部