すべてのブラウザでうまく動作する次のスクリプトがあります。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';
},
任意のアイデア?
この場合、FFでコンソールエラーが発生しますか?または、ajaxリクエストの異常な動作(開発ツールのネットワークタブで調べてみてください) – ADyson
さらに明らかに:$ window要求が完了する前に 'window.location'コマンドがほぼ確実に実行されます。どのブラウザでも、ajax呼び出しを切断します。なぜあなたはその時点で新しいページに行くのですか? – ADyson
@ ADysonありがとうございます。テストでは、windows.locationのリダイレクトを削除しました。そして、すべての人がChromeとEdgeで作業していることを覚えておいてください.Windows.locationがajax呼び出しを切断していた場合には当てはまりませんでした。 – jimshot