我的自定义HTTP错误信息被覆盖掉在PHP

所以我使用CakePHP和使用Ajax提交表单。 在某些情况下,它返回一个定制的错误。

例如,在一个点上也可以是这样的:

Failed to load resource: the server responded with a status of 412 ([{"field":"PaymentCardholderName","message":"Please enter CardHolder's Name."}, {"field":"PaymentCardNumber","message":"Please enter Card Number."}, {"field":"PaymentCvvNumber","message":"Please enter CVV Number."}, {"field":"PaymentBillingAddress","message":"Please enter your Billing Address"}])

这里是服务器逻辑的情况下,任何人都需要它

header('HTTP/1.1 412 ' . json_encode($error));

当我打开这件事在当地我看到我的自定义错误消息。 当我把它部署到远程服务器我只是看到我的自定义错误信息覆盖

Failed to load resource: the server responded with a status of 412 (Precondition Failed)

它必须是一些配置,但我不能找到它。

--------------解决方案-------------

此外,代替假定HTTP/1.1

做这个:

header($_SERVER["SERVER_PROTOCOL"]." 412 Precondition Failed");

代替这样的:

header("HTTP/1.1 412 Precondition Failed");
header("HTTP/1.0 412 Precondition Failed");

为什么? 因为$_SERVER["SERVER_PROTOCOL"]让你无论是HTTP/1.1HTTP/1.0基于浏览器。 如果你用错了,阿帕奇可能会增加意外内容到响应。 例如。 一个4位十六进制代码在启动(校验和),和一尾随零。

分类:php 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.870 (s). 10 q(s)