PHP 中使用ajax时一些常见错误总结整理

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

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

前端代码如下:

$.ajax({ url:'1.php',//目的php文件 data:{"age":12,"name":'zh'},//传送的数据 type:‘post',//方式post/get dataType:'json',//数据传送格式 success:function(response) { console.log(response); }, error:function(response) { console.log(response); console.log("错误"); } });

php后端代码如下:

$postAge = $_POST['age']; $postName = $_POST['name']; echo $postAge; echo $postName;

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

状态码都没问题,status是200,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形式的数据。

回到本文提出的例子上。

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

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

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

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

以下是dataType的W3school解释:

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

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

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

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

时间: 2024-09-20 08:11:48

PHP 中使用ajax时一些常见错误总结整理的相关文章

网页设计中META标签写法的常见错误及后果

错误|设计|网页|网页设计 网页设计中META标签写法的常见错误及后果[摘要]:网页设计中META标签描述和关键词写法的常见错误包括:整个网站所有的网页使用同样的META标签内容,META标签中网页介绍信息与网站内容缺少相关性等.本文归纳了网页设计中META标签写法的常见错误,并分析了出现不合理的META标签设计的可能后果. 网页设计中META标签写法的常见错误及后果 搜索引擎优化通常会涉及到网页META标签的话题,META标签内容写作的是网络营销导向网站建设中网页设计的基本工作内容之一,在网络

SQL Server连接中的三个最常见错误:

server|错误 SQL Server连接中的三个最常见错误: 一."SQL Server 不存在或访问被拒绝" 这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多. 一般说来,有以下几种可能性: 1,SQL Server名称或IP地址拼写有误2,服务器端网络配置有误3,客户端网络配置有误 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. ============= 首先,检查网络物理连接 =============ping <服务器IP地址/服务

SQL Server连接中的四个最常见错误

server|错误 SQL Server连接中的四个最常见错误: 一."SQL Server 不存在或访问被拒绝" 这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多. 一般说来,有以下几种可能性: 1,SQL Server名称或IP地址拼写有误 2,服务器端网络配置有误 3,客户端网络配置有误 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. ============= 首先,检查网络物理连接 ============= ping <服务器IP地址

在电脑中使用扫描仪时提示通讯错误的解决方法

  最近有用户反映在电脑连接使用扫描仪的时候出现操作失败的情况,打开扫描软件提示通讯错误时请更新扫描端口.如果遇到了这样的问题,应该如何进行解决?此时,大家可以看看本篇教程介绍的方法,来尝试解决上述的问题. 1.进入设备管理器--图像设备--选择相应的扫描仪设备,右击选择更新驱动程序; 2.更新驱动程序页面选择"浏览计算机以查找驱动程序"; 3.选择"从计算机的设备驱动程序列表中选择"; 4.选择显示兼容硬件中的扫描仪图标后点下一步; 5.然后会显示正在安装驱动;

js中函数定义时遇到的错误

问题描述 js中函数定义时遇到的错误 Syntax error on token ""Invalid Character"" ; expected,IDE错误提示.我在js中定义函数,对象点方法名,没注意到点用的是中文的.js中定义函数还有哪些类似的错误. 解决方案 不要把关键字定义成函数名 解决方案二: JS区分大小写,单词拼写错误等等 解决方案三: 一些常用的JS自定义函数整理 解决方案四: http://wenku.baidu.com/link?url=qEW

c#编程-C#中Parallel.For并行处理中读取文件时出现的错误

问题描述 C#中Parallel.For并行处理中读取文件时出现的错误 1.读取"d:/users/v-lingao/from_lei/wordsegmentation/testdata"目录下的所有txt文档,利用Parallel.For并行处理各个txt文档中的内容,每次读取一行存储到string line中,利用line = sr.ReadLine() (StreamReader sr); 没处理一行也入"d:/users/v-lingao/from_lei/words

c#winform-项目复制到另一台电脑中,重新生成时出现如下错误.何解?

问题描述 项目复制到另一台电脑中,重新生成时出现如下错误.何解? 错误 3 "GenerateResource"任务意外失败. System.Runtime.InteropServices.ExternalException: GDI+ 中发生一般性错误. 在 System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams) 在 System.Drawing

DIV+CSS设计网页时的常见错误处理技巧

以下是一些DIV+CSS设计网页时的常见错误处理技巧,希望能对大家有所帮助. 1. 检查HTML元素是否有拼写错误.是否忘记结束标记 即使是老手也经常会弄错div的嵌套关系.可以用dreamweaver的验证功能检查一下有无错误. 2. 检查CSS是否正确 检查一下有无拼写错误.是否忘记结尾的 } 等.可以利用CleanCSS来检查 CSS的拼写错误.CleanCSS本是为CSS减肥的工具,但也能检查出拼写错误. 3. 确定错误发生的位置 假如错误影响了整体布局,则可以逐个删除div块,直到删除

Word2013中键入内容时标记语法错误

  第1步,打开Word2013文档窗口,依次单击"文件"→"选项"按钮. 第2步,打开"Word选项"对话框,切换到"校对"选项卡.在"在Word中更正拼写和语法时"区域选中"键入时标记语法错误"复选框,并单击"确定"按钮. 分类: word教程