这几天在开发在线学习平台的过程,遇到这样的问题,先看js代码,
很简单的点击按钮,触发ajax
但是问题是,success里的回调根本就不执行,百般修改也没反应。再看php代码,
到后来已经被我简化为只有一句echo做为返回值了,但这时依然不执行,这时我意识到,即不是js的问题,也不是php的问题,那么问题应该定位在协议或数据方面。后来我把js代码中的data去掉,变成这样,
但即这样,依然没有执行success,这时我更加确定,就是http请求头方面的问题。在网上反复查找php接收数据时的请求头方面的资料,终于确定,问题原因是,请求头的 header 里的Content-Type的问题。
Content-Type的值有以下几种,
text/xml (xml 数据格式)
text/html (html 数据格式)
text/plain (无格式字符串数据格式)
multipart/form-data (上传文件)
application/json (json 数据格式)
application/x-www-form-urlencoded(序列化数据的)
第一种xml格式肯定用不上;第二种html格式也不对;第三种无格式也不对;第四个是上传表单的,用不上;
估计情况就是第五个、第六个。直接说结果了,(既然$.ajax用不了,那就直接XMLHttpRequest对象)看代码,
JavaScript代码:
PHP代码:
解决了。
这个在线学习平台说起来简单,但这一路开发过来,踩进去的坑有很多,就这样继续吧,成功的路从来都是曲折的。
最后是广告时间,如果想要转行或提高前端技术的同学,可以看一下web前端提高班的课程,
如果觉得本文对你有用,请帮忙转发,并点赞,谢谢。