位置: 编程技术 - 正文

PHP 中使用ajax时一些常见错误总结整理(ajax调用php接口)

编辑:rootadmin

推荐整理分享PHP 中使用ajax时一些常见错误总结整理(ajax调用php接口),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ajax调用php接口,php ajax json,ajax获取php数据,php+ajax,php发送ajax请求,php和ajax用哪个调用数据,php的ajax,php的ajax,内容如对您有帮助,希望把文章链接给更多的朋友!

PHP作为后端时,前端js使用ajax技术进行相互信息传送时,经常会出错误,对于新手来说有些手足无措。总结错误、经验,以后随时回顾。

第一个问题,当前端无错误的情况下,页面调试也显示没有问题,但是ajax获取不到后端php文件发送过来的信息:

前端代码如下:

php后端代码如下:

页面出现后,F调试查看如下所示:

状态码都没问题,status是,responseReady是4,说明在html发送给php文件信息过程是没有问题的。而且php也返回了信息。可是为什么程序走了error而没有走success呢?

这时需要小心!由于php后端多个echo没有把数据整理为json格式。也就是说php返回的是一个字符串不是json格式的数据。有人说加上json_encode()呢?这样也是不行的,因为json_encode()的函数作用没搞清,百度仔细看下。json_encode()与json_decode()是一对。

json_encode(json),把json整理为json格式的数据。在上例中,就算php后端代码改写为:echo json_encode(postAge);和echojsonencode(postName);也是不对的。因为这样仅仅是把单个postAge和postName整理为了json格式,但是由于是2个返回,既是2个response,在浏览器调试页面也可以看到1个post回来2个response。这样导致2个json格式的数据返回给前端是就不再是json格式的数据(我理解为json污染,方便理解)。也就是单个数据是json格式但是多个json格式数据“胡乱”结合在一起不按照json格式合并在一起就会产生“污染”。导致整体数据格式混乱无法被识别,这种情况者数据处理和传输时随时都见得到。

json_decode(json,true/false)函数是把json整理为数组或者object(理解为类)。true是强制装换为(关联)数组,false是默认的会转换为object形式的数据。

PHP 中使用ajax时一些常见错误总结整理(ajax调用php接口)

回到本文提出的例子上。

既然传送回来的数据不再是json格式的数据,那么就是dataType的问题了。

dataType是告诉浏览器检查传送的数据格式。如果不写,浏览器不会去检查数据格式,写了就一定检查而且必须满足格式要求。本例中,由于写了为json格式,但是传回来时不是json格式,所以浏览器认为传输过程中出现了错误,所以走了error而没有走success。

这时最好的方式是修改php代码,将echo的内容改为一个数组,用数组的信形式把整体数据整理为json格式进行传送(json_encode),避免发生错误。

当然也可以使用另一种方法,类似作弊的方法,直接注释掉(或者不写)dataType,这样浏览器就不会去检查数据的形式而是根据数据的形式智能的判断,类似蒙混过关。

以下是dataType的W3school解释:

值得注意的是,后端php文件中多个echo输出后,数据返回确是一起返回的,既是修改正确后,前端得到的数据是2个数据合为一个字符串的形式数据。本例子中得到的数据是zh。

当然还有很多细节问题了,比如php后端只能用echo或者die(),不能用return,这是因为return是只在服务器端中返回数据使用,而echo是打印数据,将数据从服务器端打印出来,给前端。return只能在服务器端,或者前端单一的返回。而die()的强大就不提了,直接终止后端php程序的形式返回数据。

还有比如在$,ajax({});中每一行既是一个参数,参数之间是逗号隔开,多个数据是在{}内,隔开是用逗号等等。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP连接MYSQL数据库的3种常用方法 对于PHP入门用户来说,我们只要掌握基本的数据库写入、读取、编辑、删除等基本的操作就算入门,也可以写出简单的程序出来,比如留言本、新闻文

PHP用正则匹配form表单中所有元素的类型和属性值实例代码 前言最近工作中遇到一个需求,需要在正则匹配页面中,所有可能存在的form表单的元素,可能有input,action,select,textarea等等所有可能的元素,本文给出

yii2使用GridView实现数据全选及批量删除按钮示例 整理文档,发现一个用GridView实现数据全选及批量删除按钮示例,稍微整理精简一下做下分享。先来看实现的效果关键代码如下:=GridView::widget(['dataProvid

标签: ajax调用php接口

本文链接地址:https://www.jiuchutong.com/biancheng/294824.html 转载请保留说明!

上一篇:php批量删除操作代码分享(php批量删除操作记录)

下一篇:PHP连接MYSQL数据库的3种常用方法(php连接mysql数据库步骤正确的是)

  • 计提个税与实际缴纳不一致
  • 资本公积转增资本会引起什么变化
  • 未认证的进项税能做转出处理吗
  • 个人所得税手续费返还属于政府补助吗
  • 发票丢失的税务处罚
  • 已认证的专票可以取消认证吗
  • 个人缴纳职业年金是什么意思
  • 红冲以后怎么做账
  • 报税中反写是什么意思
  • 税率开错情况说明
  • 商铺出租怎么做账
  • 赠与和继承哪个划算
  • 详解价外费用的会计核算
  • 土地增值税清算规程实施细则
  • 免税企业取得增值税专用发票怎么处理
  • 小微企业免税销售额填含税还是不含税
  • 2017小规模纳税人标准
  • 房地产未售商品房已办房产证要交房产税么
  • 没领税票会产生税吗
  • 招标文件费开票品目
  • 购买超市购物卡打几折
  • 小规模零申报资产负债表报错了要交印花税吗
  • 转让技术所有权是什么收入
  • win11 分区
  • win11怎么关闭系统自动更新
  • 前端实现拖拽拉动图片
  • 独资子公司如何注册
  • 缴纳增值税会计处理
  • 出口货物免抵退税 组织收入 影响
  • win7指定程序用指定网卡
  • Laravel 5.5 的自定义验证对象/类示例代码详解
  • 什么情况下增长率是0
  • 有限责任公司股东对公司债务承担
  • 销售方运输发票怎么做账?
  • 羊了不眄翻译
  • 事业单位小规模纳税人缴纳附加税有什么,税率是多少
  • php转utf8
  • 深度强化学习-DQN算法原理与代码
  • PHP编写简易计算器
  • 企业的会计科目可以任意设置随意修改
  • 出口退税管理类别四类
  • 对方代垫保险费算不算入账价值
  • 建筑业发票范围
  • 利润表中本期金额栏各项目应根据损益类账户的什么填列
  • 公司给员工租房进项税可以抵扣吗
  • 分页 php
  • 小规模纳税人工资薪金怎么申报
  • 定金罚则可以约定吗
  • 印花税只能到角吗
  • 如何网上填报个人所得税
  • 企业所得税汇算清缴会计分录
  • 用友t3采购订单怎么录入
  • 收到社保稳岗补贴转入营业外收入要交企业所得税吧
  • 跨年红字发票账务处理
  • 融资租入固定资产的入账价值
  • 劳务简易征收最新政策2020
  • 年终汇算清缴的税种
  • 12月收入1月份开发票怎么报企业所得税
  • 交去年的企业所得税吗
  • 本期盈余结转会亏损吗
  • 年末递延所得税资产的账面余额
  • 主营业务收入和营业外收入的区别
  • 公开发行企业债券,发行人累计债券余额
  • 小企业会计建账分录
  • win8系统自带应用都打不开了怎么办
  • win7安装cad2010
  • 五步轻松实现zTree的使用
  • unity获取mesh网格数据
  • 简述opengl的编程步骤
  • Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
  • jsonp实现动态加载文件
  • dos判断变量是否为空
  • linux,windows
  • js判断字符串字符出现的次数
  • jquery的实现原理
  • 福建税务总局电话
  • 深圳市税务局网上办税大厅官网
  • 五联发票每一联的作用
  • 北京地税局上班时间查询
  • 航天信息的金税盘开票要怎么调格式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设