Як послати post-запит, використовуючи технологію ajax

Як послати POST-запит, використовуючи технологію AJAX

У даній інструкції я напишу, як послати POST-запит за допомогою технології AJAX. Використовувати POST-запит необхідно, коли потрібно передати сервера досить великий обсяг даних (в силу обмежень специфікації неможливо передати, скажімо, 10 кілобайт через один GET-запит).

Інструкція

Рівень складності: Нескладно

Що вам знадобиться:

  • Блокнот або будь-який інший текстовий редактор
  • Хостинг або домашній віртуальних хостинг (Apache, наприклад)

1 крок

Як послати POST-запит, використовуючи технологію AJAX

Створюємо скрипт, який буде обробляти запит (файл "ajax.php"). Даний файл поверне об'єкт, який буде містити параметр "res" з значенням "ok" або "error" - вірність даних. У випадку помилки також буде переданий параметр "msg" - повідомлення для видачі користувачеві (через "alert"), у випадку удачі - "x1" і "x2" - передані дані і подвоєні передані дані.
lt;? php
if ($POST['Q'] == '') die ('{"res": "error", "msg": "Не прийшло ніяких даних!"}') -
echo '{"res": "ok", "x1": "'. $
POST['Q']. '"," X2 ":"'. $POST['Q']. $POST['Q']. '"}' -
?>

2 крок

Як послати POST-запит, використовуючи технологію AJAX



Потім в тій же папці створюємо файл "main.php". У цьому файлі повинна бути деяка форма, що дозволяє ввести дані в текстове поле і кнопку "Відправити" для відправки даних. В кінці тіла (блок "BODY") Повинен бути блок"SCRIPT", Приєднує скрипт, що обробляє події форми і результат AJAX-запиту. Отже, файл "main.php":

Приклад <span class="caps">POST</span>-запиту в технології <span class="caps">AJAX</span>


Введіть дані:


Результат:
x1:
x2:

3 крок

Як послати POST-запит, використовуючи технологію AJAX

Тепер файл "script.js":
function SendPOST ()
{
var data = document.getElementById ('data'). value-
ajaxSendPOST ('ajax.php', 'q =' + encodeURI (data), SendCallback) -
}

function SendCallback (answer) {var ans = eval ('(' + answer + ')') - // Перетворимо отриманий в даних об'єкт з текстового відаif (ans.res == 'error') {alert (ans.msg) - return-} if (ans.res! = 'ok') {alert ('Дивна відповідь ... І не "error", і не "ok" ...') - return-} document.getElementById ('x1' ) .innerHTML = ans.x1-document.getElementById ('x2'). innerHTML = ans.x2-}

/ *
Параметр data - передані дані, формат:
data = 'var1 =' encodeURI (var2) -
* /
function ajaxSendPOST (xmlpage, data, callback)
{
var xmlh = null-
if (window.XMLHttpRequest)
xmlh = new XMLHttpRequest () -
else
try
{Xmlh = new ActiveXObject ('Msxml2.XMLHTTP') -}
catch (ex) {xmlh = new ActiveXObject ('Microsoft.XMLHTTP') -}
if (xmlh)
{
xmlh.open ('post', xmlpage, true) -
xmlh.onreadystatechange = function (x) {if (xmlh.readyState == 4) callback (xmlh.responseText) -}
xmlh.setRequestHeader ("Accept-Charset", "windows-1251") -
xmlh.setRequestHeader ("Accept-Language", "ru, en") -
xmlh.setRequestHeader ("Connection", "close") -
xmlh.setRequestHeader ("Content-length", data.length) - // Довжина даних, що відправляються
xmlh.setRequestHeader ("Content-type", "application / x-www-form-urlencoded") -
xmlh.send (data) - // Саме тут відправляються дані
}
}

4 крок

Як послати POST-запит, використовуючи технологію AJAX

А ось і результат (див. Зображення).

Поради та попередження:

  • Можуть бути проблеми з передачею даних російською мовою. Але ви можете знайти в інтернеті код функції "utf8_win" і використовувати її так: $ _POST ['q'] = utf8_win ($ _ POST ['q']);






» » Як послати post-запит, використовуючи технологію ajax