1

我不想运行 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);


        }


?>
4

1 回答 1

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 产生 304 响应,但它不应该出现完全相同的问题和完全相同的解决方案(缓存:假)

于 2013-05-22T08:01:42.097 回答