Php JQuery.post回调数据为空
我对ZEND、JQuery、PHP和Javascript有问题。我对这些语言很陌生,我只是在努力学习 在其他情况下,我有jquery.post工作,但我现在无法让它执行简单的调用 phtml文件(/admin/user.phtml) 存在/admin/newusercallback.phtml文件Php JQuery.post回调数据为空,php,javascript,zend-framework,jquery,Php,Javascript,Zend Framework,Jquery,我对ZEND、JQuery、PHP和Javascript有问题。我对这些语言很陌生,我只是在努力学习 在其他情况下,我有jquery.post工作,但我现在无法让它执行简单的调用 phtml文件(/admin/user.phtml) 存在/admin/newusercallback.phtml文件 <?php ?> 我有两个弹出框出现,上面写着呼叫成功!和空 问题是,第二个弹出框应该显示“Test”而不是Null 如果我直接浏览到URL,我的浏览器将显示一个包含文本的窗口 "T
<?php ?>
我有两个弹出框出现,上面写着呼叫成功!和空
问题是,第二个弹出框应该显示“Test”而不是Null
如果我直接浏览到URL,我的浏览器将显示一个包含文本的窗口
"Test"
(包括引号)
我的问题是,当直接浏览到正确显示数据“Test”的页面时,为什么testJquery的回调数据为Null?
除此之外,我如何修复它 您的控制器似乎只响应HTML/文本。
我不知道怎么做,但是你的控制器应该返回JSON,这是因为你的jQuery函数要求“JSON”格式,而文本“Test”不是JSON 解决方案: 1.删除testJquery()函数上的“json”数据类型:
function testJquery(){
$.post(url,{},function(data){
window.alert("Call successful!");
window.alert(data);
});
}
二,。编辑AdminController.php文件以对数组对象进行编码
public function newusercallbackAction(){
echo json_encode(array("Test"));
}
只有当响应头“Content Type”是有效的json mime时,它才会工作,即
application/json
。
速记版本.getJSON
在输出任何其他内容之前,请将其放入php中
标题(“内容类型:application/json;charset=utf-8”)
当我对它进行json_编码时,我认为它变成了一个json对象。当我删除“json”时,对象将变为未索引。添加json并对数组进行编码将返回空数组。如果要在jQuery函数中添加“json”,请确保直接从浏览器访问URL时将打印类似{“Key”:“Test”}或[“Text”]的内容。我不确定这家伙为什么投了反对票。。。据我所知,他走上了正确的道路。字符串本身不是JSON。JSON_encode(“Test”)应该是有效的JSON,我刚刚试过——不是。另外,如果您查看所有示例,它们都使用数组。我的印象是json_encode只是为数组构建的。。。请随意证明我错了。那个json解析器实际上比大多数人都要宽松得多。请在我之前发布的链接中再试一次。在php函数中尝试一下。我在IE中尝试了我现有的代码,它在那里工作。它只在firefox和Chrome中失败。添加JSON.parse并没有解决问题。From:“
JSON\u encode()
将生成简单值(即既不是对象也不是数组)的JSON如果给定一个字符串、整数、浮点或布尔值作为输入值。虽然大多数解码器都会接受这些值作为有效的JSON,但有些可能不接受,因为规范在这一点上是不明确的。“我只是查看了RFC 4627和JSON.org,它看起来并不是很不明确——语法要求根上有一个对象或数组(但可能PHP文档早于规范?)。尝试将json_编码(“Text”);
更改为json_编码(数组(“result”=>“Test”);
和window.alert(data);
更改为window.alert(data.result);
@shadowjson_解码(“Test”));
,也适用于node.js尝试过它,但效果很奇怪。不知道我做了什么不同。无论如何,我上面建议的是一种更好的使用json的方法,因为它允许您发送额外的信息(在其他元素中)
"Test"
function testJquery(){
$.post(url,{},function(data){
window.alert("Call successful!");
window.alert(data);
});
}
public function newusercallbackAction(){
echo json_encode(array("Test"));
}