[英]access post variables after ajax call
在我的應用程序中,我有一個AJAX調用,該調用將在用戶重新加載頁面(以查看他們是否切換了時區)之前將用戶的時區發布到同一頁面。 不幸的是,我無法訪問該post變量。
$(window).on('beforeunload', function() {
$.ajax({
type: "POST",
url: "ToDoApp.php",
data: {
timezone: userTimeZone
},
dataType: 'text'
});
});
我很確定這是因為我在AJAX調用期間重新加載了一次,其次是在頁面實際加載時。 但是,我已經兜圈子了一個小時,似乎無法解決我的問題。
頁面重新加載后,如何獲取時區變量?
如果有更好的方法可以完全解決問題,我歡迎您提出建議。
更多信息:
我需要Server-Side上的timezone變量來執行時區轉換,因此需要進行AJAX調用。 從下面我的評論:
所以這是一個難題:我意識到時區是使用Moment.JS進行計算的更好的客戶端,但是我需要時區變量來進行服務器端時區轉換,以便向用戶正確顯示日期。 這就是為什么我[我認為]需要AJAX調用的原因,因為沒有它,一旦頁面重新加載,我的時區將只能在客戶端使用,而我將無法執行計算。
您可以使用javascript的sessionStorage ...執行以下操作。
//set this anywhere you want in your .js script;
sessionStorage.setItem('TheTimeZone',userTimeZone);
//get the timezone using sessionStorage
$(window).on('beforeunload', function() {
$.ajax({
type: "POST",
url: "ToDoApp.php",
data: {
timezone: sessionStorage.getItem('TheTimeZone')
},
dataType: 'text'
});
});
那應該工作。
你不能。 您必須編寫應用程序才能訪問回調中的userTimeZone值。 也許只是在請求結果中返回請求變量? 這樣,我建議使用JSON代替文本格式。 您可以從腳本ToDoApp.php返回
echo json_encode(array('post'=>$_POST, result=>$result));
並在回調中訪問它們,例如:data.post,data.result。
$(window).on('beforeunload', function() {
if (typeof(Storage) !== "undefined") {
localStorage.setItem("timeZone",new Date().getTimezoneOffset());
} else {
// Sorry! No Web Storage support..
}
$.ajax({
type: "POST",
url: "ToDoApp.php",
data: {
// new Date().getTimezoneOffset() gives clients timezone
timezone: localStorage.getItem("timeZone")
},
dataType: 'text'
});
});
更多信息: w3school在時區
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.