2017-09-28 3 views
1

すべてのブラウザでうまく動作する次のスクリプトがあります。Fullcalender eventRecieve関数がFirefoxで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の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'; 
}, 

任意のアイデア?

+0

この場合、FFでコンソールエラーが発生しますか?または、ajaxリクエストの異常な動作(開発ツールのネットワークタブで調べてみてください) – ADyson

+2

さらに明らかに:$ window要求が完了する前に 'window.location'コマンドがほぼ確実に実行されます。どのブラウザでも、ajax呼び出しを切断します。なぜあなたはその時点で新しいページに行くのですか? – ADyson

+0

@ ADysonありがとうございます。テストでは、windows.locationのリダイレクトを削除しました。そして、すべての人がChromeとEdgeで作業していることを覚えておいてください.Windows.locationがajax呼び出しを切断していた場合には当てはまりませんでした。 – jimshot

答えて

1

クレジットはこのダイソンに行く。 Ajax呼び出しが行われる前に、Firefoxだけでリダイレクト(window.location = '新しい場所';)が起動されるように見えるでしょう。同じことが、ChromeやEdgeの場合には当てはまりません.Ajaxの呼び出しを最初に処理します。してくださいupvote受け入れられた答えであるべきダイソンのコメント。すぐにダイソンズの正しいコメントを却下することに対する謝罪。

関連する問題