Ajax, проверьте на получение обновлений, sight_origin_policy
-
18-09-2019 - |
Вопрос
У меня есть это руководство по HTML, которое установлено с моим приложением. Это руководство часто обновляется (3-5 раз в неделю), и я хочу предупредить своих пользователей, если руководство устарело.
Первое, о чем я подумал,-это создать горяче связанное изображение для моего веб-сервера, которое я мог бы использовать, чтобы проверить версию, в которой они используют, и серверу с изображением «обновления» или изображением «без обновления». Но если у пользователя нет подключения к Интернету, изображение отображалось бы как сломанное изображение. И я этого не хочу.
Затем я посмотрел на использование немного Ajax, чтобы сделать запрос из моего веб -сервера. Если у пользователя не было подключения Interenet, JavaScript сможет изящно провалиться. Но я столкнулся с проблемой. Поскольку руководство хранится как локальный файл на ПК пользователях, это считается перекрестным доменным запросом (Такая же политика происхождения) Чтобы сделать запрос от моего веб -сервера.
Есть предложения о том, что еще попробовать?
Я не могу просто включить гипер -ссылку в меню «Пуск» в онлайн -версию руководства, так как многие из моих пользователей не будут иметь подключение к Интернету.
Решение
Ваша первая интуиция кажется мне самым простым решением.
Используйте горяче связанное изображение, чтобы рекламировать обновление. Используйте Alt Text, чтобы скрыть сломанное изображение и отобразить полезное сообщение пользователю.
Например, вы можете попробовать:
<img src="foobar.jpg?v=1.05.93" alt="Checking for updates... Offline! Connect to the internet to check for updates to this manual." name="UpdateChk" />
Чтобы быть причудливым, в вашем CSS добавьте границу и немного прокладки, чтобы текст IMG Alt выделялся и не просто выглядел так, как будто это обычная текстовая часть руководства. Может быть, граница 1PX и 3PX маржи/прокладки?
Другие советы
Используйте $ .post с функцией обратного вызова для обработки вашего ответа. Это «такая же политика происхождения» в безопасности.
Вы можете использовать JSONP, прочитайте больше об этом здесь: