我有一个运行5.4.35的AMPPS的本地Windows堆栈,我的代码运行得很好,但当我部署到运行PHP 5.4.28的Bluehost服务器时,wp\\u send\\u json的执行是不同的。
wp_send_json( array(\'error\' => \'Please enter a valid postcode.\', \'errorFieldType\'=>\'postcode\') );
在Windows上运行良好,但在Bluehost上运行良好,如果我在Chrome中调试,则会在响应的开头添加一个换行符。如果我在Chrome的控制台中打开它,我会得到这个。
response
"
{"error":"Please enter a valid postcode.","errorFieldType":"postcode"}"
Windows警报(响应错误);显示错误,在Bluehost上我得到“未定义”。
你知道怎么回事吗?
SO网友:strattonn
这很棘手。这是向响应生成换行符的违规代码。
add_action(\'wp_ajax_nopriv_display_event_info\', \'DisplayEventInfoBox\');
?>
<?php
function displayStepHeader($isValid, $pos)
我把它改成
add_action(\'wp_ajax_nopriv_display_event_info\', \'DisplayEventInfoBox\');
function displayStepHeader($isValid, $pos)
一切都很好。我不知道为什么这是一个问题,但我如何找到它可能对其他人有用。我简单地把echo写为“a”;在函数定义之间,直到我收到的第一个字符是“a”,而不是字符10(换行符)。
这也导致了“警告:无法修改标题信息-标题已发送”,因为第一个字符有时不是<;但是一个换行符。
希望有一天这能帮助其他人。。。