尝试使用MooTools Request.JSON获取一个非常简单的请求。在从头开始构建它之后,我从一个地方拿了一个例子,然后慢慢地将它削减到裸露的,最小的,然后把它放回我自己的页面。唯一改变的是url和元素ID,但无济于事。
任何帮助,想法,将不胜感激。
json.php
<?php
$result['name'] = 'yay';
header('Content-type: application/json');
echo json_encode($result);
?>
demo.js(window.addEvent中的片段('domready',function(){)
$(document.body).getElement('input[id=game_name]').addEvents({
'keydown' : function(){
alert('hmm'); //this fires
var jsonRequest = new Request.JSON({
url: "json.php",
onComplete: function(result){ //changing to onSuccess kills everything afterwards
alert('result.name'); //this fires
alert(result.name); //this does not fire
alert('result.name'); //this does not fire
}
}).get();
}
});
PS。在我的页面或简化的示例页面中,我都可以获得仅在事件内发送的请求。那是为什么?
再次感谢
事实证明,问题是我不小心将同步的重复文件加载到我的浏览器中,因此(显然)无法执行任何服务器端。
非常感谢您的帮助。
答案 0 :(得分:1)
几个建议/问题:
您是否在网络浏览器的控制台中收到任何错误?您使用的是哪种网络浏览器?事实上,第三个警报根本没有触发,表明alert(result.name);
正在抛出错误,在这种情况下,所有进一步的执行都将停止,并且浏览器的控制台上会出现错误。
当你说“改用onSuccess后杀死所有东西”时,你究竟是什么意思?进一步向下的代码(即上面代码片段中未包含的代码)是否永远不会执行?或者onSuccess
从未开火?
json.php
与运行此脚本的页面位于同一目录中吗?尝试使用绝对网址json.php
或url: "json.php"
替换/mydirectory/json.php
中的http://www.mywebsite.com/mydirectory/json.php
,看看是否有效。
如果有任何帮助,以下代码会生成一条警告“yay”(在本地服务器上运行; json.php
是一个包含问题中PHP代码的文件):
var jsonRequest = new Request.JSON({
url: "json.php",
onSuccess: function(result) {
alert(result.name);
}
}).get();
答案 1 :(得分:1)
你可以在这里找到一个很棒的教程
答案 2 :(得分:1)
这里的问题完全相同。 我通过解码JSON字符串来解决它,该字符串作为参数(而不是预期的对象)给出。
onSuccess: function(jsonString) {
console.log(JSON.decode(jsonString));
}
这是文档: http://mootools.net/docs/core/Utilities/JSON#JSON:decode