информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяСетевые кракеры и правда о деле ЛевинаВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
сервер отдает глупость (text/html), а nosniff заставляет контролировать соответствие типов 22.02.17 15:03  Число просмотров: 3069
Автор: 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