Php JQuery返回带有404的JSON对象
我对整个jQuery/JSON都很陌生,但我想我会尝试一下。我的想法是将数据发布到PHP脚本,然后返回一个JSON对象。这在我的本地主机上运行良好,但在web服务器上,Firebug显示正在返回JSON对象,但我也得到了404错误 你知道我哪里会出错吗 Javascript-Php JQuery返回带有404的JSON对象,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我对整个jQuery/JSON都很陌生,但我想我会尝试一下。我的想法是将数据发布到PHP脚本,然后返回一个JSON对象。这在我的本地主机上运行良好,但在web服务器上,Firebug显示正在返回JSON对象,但我也得到了404错误 你知道我哪里会出错吗 Javascript- $(".vote").click(function() { $('#graph').empty(); var area = $(this).attr("id"); $.ajax({ dataType:
$(".vote").click(function() {
$('#graph').empty();
var area = $(this).attr("id");
$.ajax({
dataType: "json",
type: "POST",
url: "<?php echo base_url(); ?>home/vote",
cache: false,
data: "area=" + area,
success: function(json) {
arrayOfData = new Array(
[json.science_graph, 'Science', '#009999'],
[json.maths_graph, 'Maths', '#FF6600'],
[json.ict_graph, 'ICT', '#FF0000'],
[json.mfl_graph, 'MFL', '#FFCC00'],
[json.dt_graph, 'Design Technology', '#33CC00'],
[json.other_graph, 'Other Events', '#003399']
);
$('#graph').jqBarGraph({
data: arrayOfData,
barSpace: 5,
width: 430
});
}
});
});
提前谢谢。什么是“投票”?我建议更改“click”处理程序,使其
return false;
作为最后一行。我(几乎没有理由)猜测“.vote”是一个提交按钮或一个
标记,“click”同时触发处理程序和本机操作。如果处理程序返回false
,则本机操作将不会继续。如果json调用返回404,这是一个错误,我认为您需要检查它是否正常工作。您应该能够在浏览器中输入您正在调用的url,以便更好地了解正在发生的事情。完成此操作后,您将能够调整它,然后将其重新添加到脚本中。检查web服务器上是否启用了mod rewrite。也有同样的问题,结果404是因为我的htaccess中的这一行:
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>
#如果我们没有安装mod_rewrite,所有404
#可以发送到index.php,一切正常。
#提交人:ElliotHaughin
ErrorDocument 404/index.php
“.vote”是一个标记。我试图添加return false;但是这没有任何效果。您确定添加了returnfalse
指向“click”处理程序函数本身,而不是AJAX响应处理程序?您可以使用Firefox TamperData插件来查看页面发出的所有HTTP请求。这可能会帮助您了解问题是否在于您的页面提交了两个而不是一个请求。或者,作为一个实验,你可以更改上的“href”或任何东西)。谢谢你的回复,我做了你所说的一切并检查了数据-非常好的插件。最后发现,通过包含wordpress代码片段,它阻止了JSON请求的正确显示。TamperData确实是一个非常有用的“健全性检查”工具。我测试了JSON请求的url,它返回JSON字符串-{“科学图”:“3”,“ict图”:“3”,“dt图”:“7”,“其他图”:“4”,“mfl图”:“4”,“数学图”:“2”}。Firebug还显示,当ajax启动时,返回的是404,但是Firebug也显示了404,并且数据没有加载回页面,我不理解这一点。
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>