jquery ajax:请求失败

时间:2013-05-22 06:35:42

标签: jquery ajax

我不想运行jquery但是当我运行它时,我首先得到我的值然后代码失败错误。这是什么意思?在这里你可以找到我的json en ajax文件。似乎json不会去我的ajax文件。

$("#submit_tosolve").on("click",function(e){
     //data uitlezen
    alert("ok");
    var message =$("#bugcommentaar").val();
    console.log(message);
    alert("ok");
    //data naar database sturen

    var request = $.ajax({
      url: "ajax/facebook_ajax.php",
      type: "POST",
      data: {message : message}, //JSON
      dataType: "json"
    });

    request.done(function(msg) {
    if(msg.status=="success"){

      var update='<div style="display:none;" class="span4">'+
      ' <table><tr><td><h5><p>'+ message+'comment posted </p></h5></td></tr></table></div>';


    $("#singleBug table").prepend(update);
    $("#singleBug table tr td").first().slideDown(); //dit gaat werken op elke browser, de eerste eruit halen



      }
    });

    request.fail(function(jqXHR, textStatus) {
      console.log("request failed" +textStatus);
    });


    });

我的ajax文件:

<?php
    include_once("../classes/Bug.class.php");

        $feedback=array();
        if(isset($_POST['message'])) 
        {
            try
            {
                $Bug = new Bug();
                $Bug->Commentaar=$_POST['message'];
                $Bug->Bug_id=$_SESSION['id2sessioncommentaar'];
                $Bug->UpdateCommentaar();   
                $feedback['text'] = "Your comment has been posted!";
                $feedback['status'] = "success";
            }
            catch(Exception $e)
            {
                $feedback['text'] = $e->getMessage();
                $feedback['status'] = "error";
            }

            header('Content-Type: application/json' );
            echo json_encode($feedback);


        }


?>

1 个答案:

答案 0 :(得分:1)

好的2件事:

  • 在使用ajax
  • 时更喜欢使用回调方法
  • 在玩网页时总是提及你的导航器:)

    $.ajax({
     url: "ajax/facebook_ajax.php",
      type: "POST",
      data: {message : message}, //JSON
      dataType: "jsonp", //Solution 2: try this type instead, it also automatically sets cache to false
      cache: false, // Solution 1 : prevent IE caching response (basically adds a random argument to the request)
    
    
     success:function(data, textStatus, jqXHR) {
            var update='<div style="display:none;" class="span4">'+
            ' <table><tr><td><h5><p>'+ data+'comment posted </p></h5></td></tr></table></div>';
            $("#singleBug table").prepend(update);
            $("#singleBug table tr td").first().slideDown(); //dit gaat werken op elke browser, de eerste eruit halen
       },
     error:function(jqXHR, textStatus, errorThrown) {
        console.log("request failed" +textStatus);
     }
    });
    

此外,jQuery默认使用UTF8,您的服务器文件需要以UTF8和您的请求编写。

 header('Content-Type: application/json; charset=UTF-8' );
编辑:顺便说一句,在用“jquery ajax json 304”进行短搜索后,我发现这篇帖子jQuery AJAX producing 304 responses when it shouldn't有完全相同的问题和完全相同的解决方案(缓存:假)