Отправка AJAX-запроса с заголовками - PullRequest
4 голосов
/ 09 июля 2011

В книге JavaScript: Полное руководство, 5-е издание Дэвида Фланагана, говорится: перед отправкой запроса AJAX вы должны отправлять заголовки запроса.

В рамках поддержки кросс-браузеров мне нужно это сделать?

request.setRequestHeader("User-Agent", "XMLHttpRequest");
request.setRequestHeader("Accept-Language", "en");
request.setRequestHeader("If-Modified-Since", lastRequestTime.toString()); 

Ответы [ 2 ]

3 голосов
/ 09 июля 2011

Для последних 2 заголовков они вовсе не обязательны для совместимости с браузером. Эти заголовки используются как индикация предпочтений (Accept-Language) и оптимизация контента (If-Modified-Since).

request.setRequestHeader("Accept-Language", "en");
request.setRequestHeader("If-Modified-Since", lastRequestTime.toString()); 

Первый заголовок используется на стороне сервера, чтобы определить, был ли выполнен запрос из AJAX или просто с помощью навигации. Более старый браузер может не устанавливать этот заголовок по умолчанию, поэтому вы можете потерять совместимость браузера, если ваш сервер использует этот заголовок. Если ваш сервер не использует этот заголовок, вы не потеряете совместимость браузера, если он не установлен.

request.setRequestHeader("X-Requested-With", "XMLHttpRequest");

Обратите внимание, что первый заголовок должен быть X-Requested-With, а не User-Agent.

2 голосов
/ 09 июля 2011

Обратитесь к руководству jQuery:

http://code.jquery.com/jquery-latest.js

Специально для поиска "X-Requested-With". Вам не нужно устанавливать «User-Agent». Вы можете установить "X-Requested-With" в "XMLHttpRequest", хотя.

Кажется, много вопросов от людей, пытающихся переопределить jQuery, не глядя на источник jQuery, DoJo, MooTools или любых других JS-сред. Используйте источник, Люк. Или просто используйте фреймворк и создайте полезное приложение вместо того, чтобы заново решать решаемые проблемы в качестве учебного упражнения.

Ознакомьтесь с этой серией постов в блоге dailyjs, где они создают фреймворк с нуля:

http://dailyjs.com/tags.html#lmaf

...