当前位置: 首页 > news >正文

Ajax调试后端输出的最简方案:FormData+Firebug实战教程

Web开发中,Ajax负责前后端的数据传输,而在调试阶段,我们常常希望快速查看后端返回的数据。有时后端输出内容较复杂,浏览器默认的控制台又不直观,这就让调试变得有些麻烦。本文介绍一种简洁实用的调试方式,通过HTML5FormData对象结合FirefoxFirebug插件,实现对PHP端输出信息的可视化查看。

Php代码段:(FormData.php

<?php
/*** 功能:提取html5的所有表单数据(html5的FormData表单数据对象)*/
$data = isset($_POST) ? $_POST : '' ;
if (!empty($data)){$str = '';foreach ($data as $k=>$v){$str .= '键名:' . $k . ',键值:' . $v . '<br/>'; }echo $str;
}
?>

Html代码段:(FormData.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript">
function sendData(){var xhr = new XMLHttpRequest();var formobj = document.getElementsByName('formdata')[0];var formdata = new FormData(formobj);formdata.append('aa','哈哈');//手工增加数据xhr.open('POST','./FormData.php',true);//xhr.onreadystatechange = function(){//注意:此行一定要把13行第三个参数设置为true,否则该状态不会发生变化(即不会执行该函数)。//if(this.readyState == 4 && this.status == 200){//判断请求成功并且成功响应的状态document.getElementById('res').innerHTML = '您传输的信息是:<br/>' + this.responseText;}}xhr.send(formdata); 
}
</script>
</head>
<body><form method='post' name='formdata' action=''>用户名:<input type='text' name='username'><br/>电邮:<input type='text' name='eamil'><br/>地址:<input type='text' name='address'><br/>电话:<input type='text' name='tel'><br/><input type='button' value='提交' onclick='sendData();'></form><div id='res'></div>
</body>
</html>

以上代码运行结果:

图片21

注意:①处此时为第三个参数为true(即异步工作模式),所以②处的onreadystatechange还可以接收到后端的反馈信息,但如果此时将第三个参数为false(即同步工作模式),那么此时②处将不会触发onreadystatechange事件,所以<div id='res'></div>将接收不到后端反馈的信息。

所以综上所述,以下介绍一种调试的好办法,如果此时想查看php的输出信息,可以在php文件用print_r($_FILES)或者var_dump($_FILES)之类的打印函数输出,然后打开火狐浏览器(前提需要安装firebug),然后按f12键打开firebug,运行FormData.html文件,并选择上传的文件后,firebug的“网络”中会不断显示请求和响应信息,打开FormData.php并打开对应的“响应”或“HTML”项,即可看到后端输出的信息。在此处推荐打开“HTML”项,此项是直观显示输出的提示效果,而“响应”项则是html代码块。两种效果如下图所示:

响应选项

图片22

HTML选项

图片23

 

http://www.jsqmd.com/news/36151/

相关文章:

  • 鸡肋的TaskFactory是时候抛弃了
  • C# 连接HANA 数据库(元宝建议,未验证)
  • K8S集群1.30版本怎么配置NFS动态存储
  • 基于互信息的Matlab多模态医学图像配准实现
  • 2025下半年软考系统架构设计师题目回忆版
  • Navicat Premium 17 破解版下载及安装使用教程
  • GSP 首营资料基础资料
  • 深入解析:基于微信小程序的校园代取服务平台
  • 了解redux么,说一下redux?
  • HelloAgent零基础入门学习笔记 - yi
  • Linux IOWait 深度解析
  • 2025年知名的昆明泡沫箱厂家推荐及采购指南
  • React-Flow中文文档正式上线 - 指南
  • P14460 【MX-S10-T1】『FeOI-4』寻雾启示 题解
  • 分治+快速幂(p1010)
  • 深入解析:一文入门Rust语言
  • Studio 3T 2025.20 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
  • P11089 [ROI 2021] 手机游戏 (Day 1) 笔记
  • 实用指南:GESP2025年9月认证C++四级( 第三部分编程题(1)排兵布阵)
  • 完整教程:Transformer模型深度解析:从原理到谷歌级代码审查实战
  • 上周热点回顾(11.3
  • RediSearch从入门到生产级实战:全文搜索的“Redis原生解”
  • 前后端代码自动生成探索
  • 实用指南:JavaScript Reference Type解读
  • 基于Java开发的大学社团管理系统源码+运行步骤
  • 智能体详解——极简深度研究Agent
  • 大模型法律知识评估——Qwen3-0.6B到8B vs LawLLM-7B
  • C 数组
  • 网络层-IP内容报涉及到的两张表:路由表&ARP表
  • 2025年评价高的孤立导体测试仪厂家推荐及采购参考