У меня есть установка для входа на один из моих сайтов, где пользователь вводит свою информацию во всплывающее окно входа на домашней странице, которое затем отправляет информацию на сервлет, а затем получает ответ через JSON. Затем домашняя страница отправляет пользователя на страницу своего профиля или, напротив, отображает ошибку (например, если имя пользователя и пароль не совпадают).Междоменный AJAX POST withCredentials и совместимость с IE8 +
$.ajax({
dataType: 'jsonp',
async: false,
url: loginLocation,
type: 'GET',
crossDomain: true,
cache: false,
xhrFields: crossDomain ? {
withCredentials: true
} : {},
data: ({'key1': value1, 'key2': value2, ..., 'keyN':'valueN'}),
success: function(data){
if (data && data.status && data.status == "success") {
window.location = profileLocation;
} else {
errorHandler();
}
},
error: errorHandler
});
Я ищу, чтобы изменить это от запроса GET на POST для того, чтобы предотвратить произвольные строки запроса отправляется в сервлет. Однако, похоже, что здесь есть несколько соображений относительно того, как должно быть изложено решение. Он должен:
- использовать POST вместо GET
- быть запрос междоменное (страница Логин и сервлета на разных доменах над обоими из которых у меня есть доступ/управление)
- использовать withCredentials параметр (функциональность Логина полагается на кук JSESSIONID так необходим этот параметр)
- быть совместим с IE8 и выше
Я попытался глядя в запросы Ajax междоменных, которые соответствуют выше кру iteria, но основным моментом является совместимость с IE8/IE9. Подходы, такие как easyXDM, кажутся неоднозначными в отношении поддержки этих браузеров (я видел противоречивые отчеты в Интернете о том, как это работает в IE8), и я не хочу сталкиваться с опасностью осознания того, что он не будет работать на полпути через реализацию ,
Итак, можно ли сделать кросс-доменные запросы ajax с использованием POST и с параметром withCredentials, который также совместим с IE8 +? Является ли easyXDM подходящим решением для этого?