Fullcalender eventRecieve功能不在Firefox下触发Ajax

时间:2017-09-28 20:21:23

标签: ajax firefox fullcalendar

我们有以下脚本适用于所有浏览器。

但是当相同的脚本放在Fullcalender eventRecieve函数内部时(外部事件拖放,重新渲染),脚本不会将数据发布到insert_events.php - 但这只发生在Firefox中 - 它会按预期发布数据Chrome和Edge。总而言之,我们的情况如下:

  • Edge,Chrome,FF - 脚本是独立的 - >按预期发布数据
  • Edge和Chrome - 脚本在eventRecieve内部 - >将数据发布为 预期
  • FF脚本在eventRecieve内部 - >无法按预期发布数据

代码:

var title = "Job Request";
var description = "nothing";
var start = "2017-08-28";
var url = "google.com";
var propertyid = "WR388GG-8621";

$.post("insert_events.php?propertyid=" + propertyid, {
    title: title,
    description: description,
    start: start,
    url: url
  },
  function(data, status) {
    alert("Data: " + data + "\nStatus: " + status);
  }
);

我们原本以为这个问题归结为使用FF和的Ajax代码 搜索一些想法的高低,并花了一天时间试图找出正在发生的事情。但实际上问题只出现在Firefox中,并且仅当脚本由Fullcalendar的eventRecieve函数触发时,如下所示。

代码:

eventReceive: function(event) {
  var title = "Job Request";
  var description = "nothing";
  var start = "2017-08-28";
  var url = "google.com";

  $.post("insert_events.php?propertyid=" + id, {
      title: title,
      description: description,
      start: start,
      url: url
    },
    function(data, status) {
      alert("Data: " + data + "\nStatus: " + status);
    });

  $('#calendar').fullCalendar('rerenderEvents');
  window.location = 'new place to go';
},

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在这个问题上归功于A Dyson。在Ajax调用之前,Firefox似乎只会触发重定向(window.location ='新的地方去#39 ;;)。 Chrome或Edge也是如此 - 它首先处理Ajax调用。请upvote A Dyson的评论,这应该是接受的答案。很快就解雇A Dysons的正确评论道歉。