2017-02-22 5 views
0

Что происходит с тегом img html (<img src="address-to-server-action">), если ответ с сервера недействителен img, скажем, JSON. Может ли браузер сбросить ошибку синтаксического анализа? У всех браузеров одинаковое поведение? Имеет ли значение, если img скрыт?Что происходит с тегом img html с json src?

Я на самом деле просто пытаюсь принести cookie с кросс-доменного сервера, который обслуживает только JSON.

ответ

1

Что произойдет, если вы попробуете что-то вроде <img src="http://example.com/some.json"> и хотите, чтобы JSON вернулся от него, чтобы браузеры не позволяли вам. Если значение src не является допустимым изображением, которое поддерживает браузер, он просто не собирается его показывать и не позволяет делать что-либо еще с ответом.

Так работают браузеры и такое поведение is documented in the HTML spec, в котором указаны the request algorithm in the Fetch spec, одним из свойств которых является запрос mode.

Если выбор не выполняется с определенным набором режимов, тогда используется режим по умолчанию no-cors. И the HTML spec algorithm for image requests не устанавливает другой режим, поэтому они no-cors.

И ответы на no-cors запросы обрабатываются браузерами как opaque filtered responses, а это означает, что из любого клиентского кода JavaScript, который вы можете попробовать в своем веб-приложении, вы не сможете получить доступ к какой-либо информации/свойствам из ответа.

+0

Даже думал, что браузер не позволит мне получить доступ к ответу, файл cookie все еще установлен браузером, так что это именно то, что мне нужно. Знаете ли вы, есть ли какой-либо стандарт, обеспечивающий настройку cookie? и еще один вопрос, я пробовал 3 разных браузера, и все они не отображают ошибку, когда синтаксический анализ изображения не просто создает место вместо изображения (что отлично); Знаете ли вы, есть ли какой-либо стандарт для этого? – AMT

+0

Что касается требований браузера при нарушении изображения, см. Https://html.spec.whatwg.org/#updating-the-image-data:img-error-7, в котором говорится, что событие с именем 'error' получает стреляли по элементу 'img'. Спецификация не указывает требования для того, что браузеры должны делать для элемента 'img', который получает событие' error' (хотя ваш код приложения может установить прослушиватель событий, который что-то с ним делает), но в https: // html. spec.whatwg.org/#the-img-element:attr-img-alt-3 в спецификации есть некоторые «Пользовательские агенты могут предоставить пользователю ...» случаи, когда это происходит, когда изображение нарушается. Никто из них не говорит, чтобы показать пользователю ошибку – sideshowbarker

0

Браузер отобразит альтернативный текст. Браузер может сообщить пользователю, что изображение загружено неправильно.

Вы можете скрыть изображение (display: none;), и оно не появится.

Вы можете установить файлы cookie для перекрестных доменов, как описано в http://www.ainixon.me/set-cookie-on-cross-domains/.

Смежные вопросы