【发布时间】:2014-01-21 16:27:49
【问题描述】:
我让 jQuery 向 PHP 发帖,如下所示:
$.post("/contact/edit_contact", serialized).done(
function(response) {
if (response.success) {
$('#row-' + id).html(response.html);
} else {
alert("There was a problem saving");
}
处理它的 PHP 返回这个响应(在网络选项卡中):
<div>
A bunch of HTML...
</div>
Warning: Cannot modify header information - headers already sent by (output started at /.../contact.controller.php:56) in /.../include/App.class.php on line 82
Call Stack:
0.0005 683376 1. {main}() pathTo/index.php:0
....
pathTo/contact.controller.php:58
0.6205 6286496 6. header() pathTo/App.class.php:82
{"success":true,"html":"<div>\n .... </div>"}
但是当我执行console.log(response.success) 时,我得到“未定义”。
为什么 JavaScript/jQuery 承诺没有看到 response.success 设置为 true?
【问题讨论】:
-
因为从整体上看,响应只是一个大杂烩,没有什么特别的。如果
"success":true部分嵌入到 Moby Dick 的文本中间,您会期望 jQuery 神奇地确定您的意思吗? -
问题是为什么 javascript 没有正确解析 PHP 产生的“标头已发送”错误?
标签: javascript php jquery