php+200+状态,关于php:AJAX状态为200,但响应状态为“失败”?

在过去的几年中,我一直在与Ruby on Rails一起工作,现在转到了用PHP编写的项目中,我一无所获。

我有一个jQuery(CoffeeScript)AJAX调用,它等待成功或错误。

问题是,即使请求失败,我也将始终获得良好的状态,请参阅:

ef36dc7c078db8a3ec6948a302f17103.png

每次我得到这个信息都不是成功或错误,脚本只会挂起。

$.ajax

url:  url

type: type

beforeSend: ->

// do something

error: ->

// I can never get here

success: (data) ->

// this works sometimes, but not when I get this weird stuff from screenshot

我想知道这是前端还是后端/服务器问题,我不应该在这里得到不同的状态代码吗?

如您所见,ajax脱离了HTTP状态代码。 您的响应带有200,因此请求成功。 身体说"失败"的事实是无关紧要的。 jQuery不是很聪明,无法"读取"体内的内容。

用现实的术语来说,您的Ajax请求被驱使到商店,试图购买巧克力棒,而商店缺货。 往返商店的旅程完全成功(汽车没有抛锚,您没有迷路,等等...)。 您没有得到巧克力棒的事实与这次旅行的成功/失败无关。

我完全理解,尽管在这种情况下,Rails Id绝对不会获得状态码200。 那我该如何解决呢?

将if(data.status == fail) { call_error_handling_code(); }放入success块中。

您只是在调用一些返回JSON数据的服务,并且正在向您返回一条消息,提示您

status:fail

但是,您可以成功到达服务器,调用服务方法,并获得响应,因此200 OK并不是不合理的HTTP代码。 这可能不是完全RESTful的,但并不少见。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值