初学$ajax()遇到的问题

做课程设计,用到了jquery的ajax方法,作为一只小菜鸟,$ajax()卡了我一上午。我选择请求的方式是POST。


第一个问题:服务器一直接受不到ajax传过来的数据,php脚本打印$_POST一直为空。

原因:Content-Type: application/json;charset=utf-8 ,意思是用来告诉服务端消息主体是序列化后的 JSON 字符串。然而有些服务端语言还没有支持这种方式,例如 php 就无法通过 $_POST 对象从上面的请求中获得内容。这时候,需要自己动手处理下:在请求头中 Content-Type 为 application/json 时,从 php://input 里获得原始输入流,再 json_decode 成对象。一些 php 框架已经开始这么做了。 

搞了很久查到了资料,菜鸟~菜鸟~ 为此提供一个关于Content-Type的科普文章:http://zccst.iteye.com/blog/2180127


第二个问题:服务器成功接收数据了,但ajax一直无法调用success方法,总是进入到error方法中。

原因:出现上面这个错误有两种可能性:

       1. 返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****}
       2. 请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}   ” 

   我属于第一种错误,我定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,然而从服务器我还返回了其他类型的数据,所以一直进入error。同时还需要在返回数据的时候声明数据类型,例如对于php语言:header('Content-type: text/json');



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值