Бележки за разработчици

Когато ме попитаха как да направя AJAX заявка към друг домейн, аз винаги отговарях, че няма начин, и предлагах jsonp, proxy, flash, frame като алтернатива. Но се оказва, че повечето съвременни браузъри (IE8 +, FF3.5 +, Chrome 6+ и Safari 4+) поддържат много добре домейн XMLHTTPRequest доста добре.

От страна на клиента всичко остава непроменено. Едва сега браузърът не блокира заявката при изпращане, но добавя към нея заглавка с името на домейна, откъдето е направена заявката: Произход: example.com

Той не предава отговора от сървъра толкова лесно обратно, сървърът трябва да добави специална заглавка: Access-Control-Allow-Origin: *
Вместо звездичка сървърът може да посочи конкретен домейн, на който е позволено да получи отговор.

Ето едно елегантно решение. Без излишни HTTP заявки, без промяна на клиентския API, без нарушаване на сигурността на съществуващите приложения (в края на краищата можете да качите снимка от друг домейн или да изпратите формуляр в iframe преди) и накрая, за разлика от Flash, с гъвкава конфигурация на права за достъп до отделни страници.

Какъв е проблемът с междудоменни заявки? Всички браузъри ограничават нашата свобода от съображения за сигурност. Следователно заявките от "ненадеждни" източници се прекъсват. Но какво, ако се доверим на източниците? Правилно използвайте патерици (много от които са обичайна практика).

В рамките на потребителските скриптове трябва да се вземат предвид ограниченията, наложени от средата, в която се изпълняват скриптовете (подробности в тази статия), плюс допълнително важно условие: наличност на достъп до сървърната страна (наличност (или възможност за създаване) сървър API за внедряване на конкретен метод на заявка)!

По-долу е дадена таблица, показваща някои от "патериците" и тяхната приложимост за потребителски скриптове.