Крос-доменний ajax

Раніше кроссдоменний ajax запити були неможливі, за винятком запити в офрмате jsonp. Сьогодні з появою технології CORS можна реалізувати кроссдоменний ajax запит, в тому числі і з повною підтримкою об'єкта XMLHttpRequest.

Браузери дозволяють зробити це використовуючи протокол Cross-Origin Resource Sharing або CORS

CORS передбачає обов'язкову відправку заголовка запиту до сервера.

Сервер повинен повернути таку відповідь

Браузер здійснить перевірку запиту і в разі успішної перевірка поверне об'єкт для роботи або завершиться невдачею.

CORS підтримує запити POST і GET. Інші типи підтримуються не всіма браузерами.

Firefox 3.5+, Safari 4+ і Chrome підтримують інші типи запитів, в той час як Ie 8 не підтримує інші типи запитів.

Якщо нам, наприклад, потрібен запит типу DELETE, потрібно відправити запит із зазначенням наступних заголовків:

А у відповідь відправити наступні заголовки відповіді:

«Передпольотної запит» до сервера дозволяє робити наступні кросбраузерності запити протягом періоду, вказане в заголовку відповіді Access-Control-Max-Age.

Практичний приклад застосування кроссдоменного ajax

У відповідь сервер обов'язково повинен повернути заголовок

Зараз навряд чи більшість використовує цей стандартний код. Простіше зробити це на jQUuery, так як в jQuery 1.5:

Для даного прикладу можна використовувати следуюший php код:

Всі способи ісползованія кроссдоменного ajax:

  • postMessage
  • JSONP
  • CORS
  • document.domain methods
  • window.name Transport
  • Server-side proxy
  • CRAZY IFRAME STUFF
  • flash

Разом з даною статтею частіше читають наступне:

Схожі статті