jquery .click()在Ajax 403响应后无法正常工作

时间:2015-02-07 09:52:09

标签: javascript jquery ajax

我有一些ajax返回403错误消息,但是当它发生时,与ajax调用关联的click()函数不再有效。我不会在ajax调用之前或之后追加或添加任何HTML,如果ajax没有收到403错误,则没有问题。只是如果我从ajax POST收到403错误,那么click()就会中断。我该如何解决这个问题?

这是我的代码:

$( "#add_comment" ).on('click', null, function() {
  
  var data = {token:"{{ Session::token() }}", comment:$('#game_comment_form form textarea').val() };

  $.ajax({
    type: "POST",
    dataType: 'json',
    url: '/game/comment/{{$game->id}}',
    data: data,
    success: function(data){
      alert("Success");
    },
    statusCode: {
      403: function() {
        alert( "Forbidden" );
      }
    },
    error: function(e){
      alert("Error");
      console.log(e);
    }

  });

  return false;

});

2 个答案:

答案 0 :(得分:1)

为什么不试试$ .post();方法?

像这样......

$.post('/game/comment/{{$game->id}}',data,function(data){
  alert("Success");
}).done(function(data, textStatus, jqXHR) {
        // called on success
}).fail(function(jqXHR, textStatus, errorThrown) {
     // called on failure
}).always(function() {
    // called in both cases 
});

答案 1 :(得分:0)

原来我完全忽略了这样一个事实:我手动禁用了输入按钮,只是忘了在403之后重新启用它。我打算删除它但希望其他人可能会意识到他们的简单错误,因为我和这有助于他们解决。