У нас была такая же потребность при разработке нашего веб-приложения. Вот как мы это сделали:
Браузер и сервер взаимодействуют только через JSON.
Весь HTML-код отображается в браузере с использованием PURE (наш шаблонизатор JS).
Код браузера разрабатывается локально так:
Мы добавляем параметр host
в URL приложения:
http://localhost/app.html?host=test.beebole-apps.com
При работе JSON отправляются на сервер с POST.
Но здесь функция, отвечающая за вызов ajax, будет реагировать на параметр host
и вместо этого делать JSONP инъекцию (GET).
<script src="http://test.beebole-apps.com/?callback=f2309892&json={...}" />
f2309892
- это временная функция со случайным именем, указывающая на метод, который будет обрабатывать ответ
json
- это JSON, который мы отправляем на сервер
Это означает, что вам понадобится некоторое сотрудничество со стороны бэкэнда, чтобы предоставить вам json, завернутый в функцию обратного вызова, например:
f2309892( /*the json here*/ );
За исключением ограничения размера (вы не можете отправить большой JSON на сервер с GET), он работает как бриз.
Другим преимуществом является то, что вы можете вызывать все разные системы (разработки и тестирования) с одного и того же локального хоста.