通过ajax调用php接口时,在windows下一切正常,linux下返回500错误。
经排查是php在执行eval时会产生一个bug,虽然一切运行正常,但是服务器仍会返回500错误。
这就导致ajax无法顺利执行下去。
使用try 或 @ 都无法屏蔽此问题,使用下面方法可以解决:
/* 解决eval返回500错误的bug */
ini_set('display_errors', 'on'); // 因为服务器上我们都是关闭错误输出的,所以暂时先开启
@eval("\$dprice = $str;"); // 执行eval并且屏蔽错误
ini_set('display_errors', 'off'); // 再屏蔽错误