Как передать переменные JavaScript в ColdFusion с помощью Ajax?

Привет всем! У меня возникла проблема с передачей данных между JavaScript и ColdFusion. Мне нужно определить смещение UTC пользователя на стороне клиента и использовать его в запросах на сервере.

Вот что я хочу сделать:

  1. Страница загружается
  2. JavaScript определяет смещение UTC
  3. Это значение отправляется на сервер через Ajax
  4. ColdFusion получает смещение и использует его в SQL-запросах

Как лучше организовать такое взаимодействие? Какие функции Ajax и ColdFusion стоит использовать? Буду благодарен за любые идеи и примеры кода.

Спасибо!

да, передача смещения через ajax - хорошая идея. только я бы еще добавил проверку на стороне сервера, что значение корректное. например так:

<cfif isNumeric(form.utcOffset) and form.utcOffset gte -720 and form.utcOffset lte 720>



это защитит от невалидных данных. а в sql-запросах можно использовать dateAdd() для корректировки времени на смещение. типа:

select dateAdd('n', #utcOffset#, someDate) as localDate from myTable

надеюсь, это поможет! удачи с проектом

Можно использовать fetch API для отправки данных. Вот пример:

let offset = new Date().getTimezoneOffset();
fetch(‘your_cf_page.cfm’, {
method: ‘POST’,
body: JSON.stringify({utcOffset: offset})
})
.then(response => response.json())
.then(data => console.log(‘Готово’))
.catch(error => console.error(‘Ошибка:’, error));

На стороне CF получаем JSON и парсим. Потом используем в запросах. Главное - валидация данных.

Для передачи смещения UTC на сервер можно использовать jQuery.ajax(). Примерно так:

var utcOffset = new Date().getTimezoneOffset();
$.ajax({
  url: 'yourCFMPage.cfm',
  method: 'POST', 
  data: { utcOffset: utcOffset },
  success: function(response) {
    console.log('Смещение отправлено');
  }
});

На стороне ColdFusion получаем значение:

<cfset utcOffset = form.utcOffset>

Теперь можно использовать utcOffset в SQL-запросах. Главное не забыть валидировать данные перед использованием.