我的回复标题是
Access-Control-Allow-Meth... GET, POST
Access-Control-Allow-Orig... *
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection Keep-Alive
Content-Length 81
Content-Type text/html
Date Mon, 26 Aug 2013 06:35:53 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive timeout=5, max=99
Pragma no-cache
Server Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7
X-Powered-By PHP/5.4.7`
请求标头
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Cache-Control no-cache
Connection keep-alive
Content-Length 31
Content-Type application/x-www-form-urlencoded; charset=UTF-8
Cookie USERNAMEEMAIL=shan%40atlos.com; PHPSESSID=8asm46iltcqc9oahsbaaap1c16
Host localhost
Pragma no-cache
Referer http://localhost/test/
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0
X-Requested-With XMLHttpRequest`
我在firefox中遇到错误“Not Well Formed”这是什么问题。 我正在以json形式正确获取数据,但它也显示非常烦人的错误
用于发出请求的Java脚本代码 GetTopNotification 并使用一个类来生成Ajax请求 Workspace
答案 0 :(得分:0)
您的响应标头不正确。
if(headers_sent()) die('Should not output data before json');
header('Content-type: application/json');
echo json_encode($data_for_json);
exit;
此外,在json之前不应发送任何内容,也不得在此之后发送任何内容。
回应以下评论:
你的php代码中的某个地方你正在输出json。但是,如上所述,您的响应标头不正确:Content-type
部分应设置为application/json
;上面的代码就是这么做的。逐行走路:
Content-type
部分设置为适当的mime-type 更新更新irt评论
你手动创建你的json字符串:我可以全心全意地建议,使用数组或对象,然后使用json_encode创建你的json。 我还在你的代码上添加了output_buffering,以防万一。
试一试,新代码为here
更新三个
在work-space.js中替换此行
self.responseValue = self.getValueFromResponse( jqXHR );
有了这个
if(type != 'xml') self.responseValue = data;
else self.responseValue = self.getValueFromResponse( jqXHR );
保存,清除缓存,然后重试。