JQuery使用404返回JSON对象

时间:2010-06-21 12:56:59

标签: php jquery ajax json

我对整个jQuery / JSON事情都很陌生,但我想我会试一试。我的想法是,我将数据发布到PHP脚本,然后返回一个JSON对象。这在我的localhost上工作正常,但在Web服务器上,Firebug显示正在返回JSON对象,但我也收到404错误。

我可能出错的任何想法?

Javascript -

    $(".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 });

  }
 }); 
});

PHP -

 if ($vote == true)
   {
    $poll = $this->ts_model->graph_poll();

    list($maths, $science, $ict, $dt, $mfl, $other) = $poll;

    echo "{";
    echo "\"science_graph\":\"".$science."\",";
    echo "\"ict_graph\":\"".$ict."\",";
    echo "\"dt_graph\":\"".$dt."\",";
    echo "\"other_graph\":\"".$other."\",";
    echo "\"mfl_graph\":\"".$mfl."\",";
    echo "\"maths_graph\":\"".$maths."\"";
    echo "}";
   }

提前致谢。

3 个答案:

答案 0 :(得分:0)

什么是“.vote”?我建议更改“click”处理程序,使其具有

return false;

作为最后一行。我(几乎不保证)的猜测是“.vote”是提交按钮或<a>标签,而“click”触发了处理程序和本机操作。如果处理程序返回false,则本机操作将不会继续。

答案 1 :(得分:0)

如果json调用返回404这是我认为你在说什么,你需要检查这是否正常。您应该能够在浏览器中输入您正在呼叫的网址,以便更好地了解正在发生的事情。完成此操作后,您将能够对其进行调整,然后将其添加回脚本中。

答案 2 :(得分:0)

检查您的网络服务器上是否启用了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>