Ajax请求只在safari或firefox上遇到错误

时间:2015-06-29 06:52:55

标签: javascript ajax firefox safari

当我尝试单击共享按钮时,我收到无法加载资源:服务器在控制台中响应状态为500(内部服务器错误)并且警告说Ajax请求遇到错误,知道这不会发生只是在生产和safari或firefox上进行。 我花了好几个小时试图搞清楚

这是我的代码

    $(document).on("click",".btn-share-generate-js",function(e) {
  var url = $(this).data("share-url");
  var id = $(this).data("id");
  var message = $("input:radio.vt:checked").val();
  var clickedBtn = $(this);

  clickedBtn.find(".icon-link").addClass('hide');
  clickedBtn.find(".icon-arrows-cw").removeClass('hide');

  $.ajax({
    type: "POST",
    url: url,
    dataType: 'json',
    data: {
      'share[message]': message
    },

    success: function(data) {
      clickedBtn.find(".icon-link").removeClass('hide');
      clickedBtn.find(".icon-arrows-cw").addClass('hide');
      if (data.error == true) {
        alert(data.error_message);
      } else {
        replaceShareButtonWith(data.share_url);
      }
    },
    error: function(){
      clickedBtn.find(".icon-link").removeClass('hide');
      clickedBtn.find(".icon-arrows-cw").addClass('hide');
      alert("Ajax request has encountered an error.")
    },
    });
  return false;
});

$(document).on("click",".social-media-reshare-btn",function(e) {
  var url = $(this).attr("href");
  window.open(url, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=245,width=550');
  return false;
});

谢谢

1 个答案:

答案 0 :(得分:0)

如果您的服务器响应500错误,唯一的原因是您发送的请求略有不同,导致服务器端出现异常。您应该打开开发人员控制台(Safari和/或Firefox),切换到Network选项卡,然后重试该操作。现在,您可以检查整个传出请求,看看它与工作正常的浏览器有何不同。

一旦找到问题的根本原因,您可以决定

  • 客户端发错了:现在您确定如何修复上述代码
  • 如果这个稍有不同的传入请求,服务器不应该失败:所以你应该修复服务器代码