【发布时间】:2010-09-11 10:00:18
【问题描述】:
我正在尝试调试一个简单的 PHP/JSON/jQuery 问题。
以下 PHP 脚本:
header('Content-type: text/javascript');
echo json_encode(array('type'=>'error','message'=>'arg'));
正在被 jQuery 消费,但是当行:
var results = jQuery.parseJSON(responseText);
执行后,jQuery JSON 解析器给出以下信息:
uncaught exception: Invalid JSON: <head></head><body><pre>{"type":"error","message":"oops!"}</pre></body>
显然,head/body/pre 不应该被退回。
我在我的 PHP 代码中看不到任何隐藏字符或任何乱序。
有什么想法吗?
【问题讨论】:
-
这是在使用 FireBug 时从服务器发送的确切响应吗?您托管此脚本的服务器能否附加这些 HTML 标记?
-
你使用任何 PHP 框架吗?
-
Darin - 我得再检查一次 - 我会做一个小的 PHP 脚本,看看会发生什么。密切关注更新。 Felix - 不,我不是,主要是因为这个应用程序实际上是一个单页设置,可以为我和我的同事解决问题。我一直很顽皮,甚至不使用 OOP,因为它应该是一个简单的问题。
-
好的 - 当我使用一个小的 PHP 脚本时:'success','message'=>'quicktest');回声 json_encode($output); ?> 结果是获取打开或保存“文件”的请求……嗯
-
设置 Content-Type: text/plain;似乎稍微缓解了这个问题。