информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеЗа кого нас держат?Где водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
сервер отдает глупость (text/html), а nosniff заставляет контролировать соответствие типов 22.02.17 15:03  Число просмотров: 2898
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
Есть слабый шанс, что можно попросить jQuery поменять это дело на ходу, указав в dataType "html jsonp":

multiple, space-separated values: As of jQuery 1.5, jQuery can convert a dataType from what it received in the Content-Type header to what you require. For example, if you want a text response to be treated as XML, use "text xml" for the dataType. You can also make a JSONP request, have it received as text, and interpreted by jQuery as XML: "jsonp text xml". Similarly, a shorthand string such as "jsonp xml" will first attempt to convert from jsonp to xml, and, failing that, convert from jsonp to text, and then from text to xml.

http://api.jquery.com/jquery.ajax/
<web building>
Браузеры теряют гибкость (jquery, jsonp, mime type ('text/html') is not executable)? 21.02.17 06:39  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 22.02.17 00:05  Количество правок: 4
<"чистая" ссылка>
Раньше, чтобы обратиться на клиенте к стороннему сервису по его API, юзал JQuery JSONP сахар:


const srcURL = 'https://xxx.xx/api/rur';
		$.ajax({

			url: srcURL,
			async: false,
			jsonp: "callback",
			dataType: "jsonp",
			success: function( response )
			{ и так далее

---

Сейчас в Хроме вылазит ошибка: "Refused to execute script from <...> because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled".

В самом деле, если посмотреть ответ сервера, там будут заголовки Content-Type: text/html и X-Content-Type-Options: nosniff, что заставляет браузер отказаться выполнить/распарсить JSON.

Как такое возможно обойти? Доступа к серверу со сторонним API не имею, изменить его заголовки нельзя.

Спасибо за внимание :)
сервер отдает глупость (text/html), а nosniff заставляет контролировать соответствие типов 22.02.17 15:03  
Автор: dl <Dmitry Leonov>
<"чистая" ссылка>
Есть слабый шанс, что можно попросить jQuery поменять это дело на ходу, указав в dataType "html jsonp":

multiple, space-separated values: As of jQuery 1.5, jQuery can convert a dataType from what it received in the Content-Type header to what you require. For example, if you want a text response to be treated as XML, use "text xml" for the dataType. You can also make a JSONP request, have it received as text, and interpreted by jQuery as XML: "jsonp text xml". Similarly, a shorthand string such as "jsonp xml" will first attempt to convert from jsonp to xml, and, failing that, convert from jsonp to text, and then from text to xml.

http://api.jquery.com/jquery.ajax/
Да, глупость, но видимо у тамошних серверологов есть свои соображения насчёт нагрузки — они согласны отдавать API серверам (тот же PHP распарсит любую какаху), но сопротивляются клиентским браузерам. 23.02.17 15:01  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 23.02.17 15:04  Количество правок: 4
<"чистая" ссылка>
Попробовал "text jsonp" и "html jsonp", тогда хром выдаёт вот что: "XMLHttpRequest cannot load https://xxx.xx/api/rur. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access".

Первоначальный вариант позволял раньше делать кроссдоменный JSONP, что сейчас делать без понятия...
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach