2017-09-28 28 views
1

我們有以下腳本,可以在所有瀏覽器上正常工作。Fullcalender eventRecieve函數不在火狐中觸發Ajax

但是,當相同的腳本放在Fullcalender eventRecieve函數(外部事件拖放,重新渲染)中時,腳本不會將數據發佈到insert_events.php - 但這隻發生在Firefox中 - 它按預期發佈數據在Chrome和Edge中。因此,在總結,我們有一個情況如下:

  • 邊緣,鉻,FF - 腳本是獨立的 - >職位數據如預期
  • 邊緣和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和 搜索高低的一些想法,花了一天的時間來試圖找出發生了什麼。但實際上這個問題只會在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'; 
}, 

任何想法?

+0

FF發生這種情況時出現任何控制檯錯誤?或者在ajax請求中出現異常行爲(在開發工具的網絡選項卡中查看它) – ADyson

+2

另外,更明顯的是:''window.location'命令幾乎肯定會在$ .post請求完成之前運行,任何瀏覽器,從而切斷ajax調用。爲什麼你要在這一點上新的一頁? – ADyson

+0

@ ADyson謝謝。在測試中,我刪除了windows.location重定向。並記住所有的工作都在Chrome和Edge上 - 如果windows.location正在切斷ajax調用,情況就不會如此。 – jimshot

回答

1

此信譽歸於戴森。在Ajax調用之前,Firefox似乎會觸發重定向(window.location ='new place to go';)。 Chrome或Edge也是如此,它首先處理Ajax調用。請upvote戴森的評論應該是接受的答案。道歉立即駁回A Dysons的正確評論。