ajax post请求_$.ajax的post请求不好使了?

  • Post author:
  • Post category:其他


640?wx_fmt=gif

这几天在开发在线学习平台的过程,遇到这样的问题,先看js代码,
497e0753f8b3c1d158840a9b95b78917.png
很简单的点击按钮,触发ajax

但是问题是,success里的回调根本就不执行,百般修改也没反应。再看php代码,

45539dbcdd58286d660bb2ccc785b600.png

到后来已经被我简化为只有一句echo做为返回值了,但这时依然不执行,这时我意识到,即不是js的问题,也不是php的问题,那么问题应该定位在协议或数据方面。后来我把js代码中的data去掉,变成这样,

750c2bc69a0cd3711f9ec3cff7262a93.png
现在只有一个单纯的post请求而已

但即这样,依然没有执行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代码:

9f4395f84b474e115e78444c8c70240c.png

PHP代码:

dfd36f132b9de77a3b48edd8e103b124.png
解决了。

这个在线学习平台说起来简单,但这一路开发过来,踩进去的坑有很多,就这样继续吧,成功的路从来都是曲折的。

最后是广告时间,如果想要转行或提高前端技术的同学,可以看一下web前端提高班的课程,

1361bc2d842f5af607189407e12d5d7a.png

如果觉得本文对你有用,请帮忙转发,并点赞,谢谢。