Ответ скрипта IE9 заблокирован из-за несоответствия типов пантомимы - PullRequest
12 голосов
/ 13 мая 2011

Я использую следующий фрагмент кода для загрузки данных из таблицы Google Fusion как json.

var fileref = document.createElement("script");
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", "http://tables.googlelabs.com/api/query?sql=select * from 588320&hdrs=false&jsonCallback=LoadTable");

Отлично работает в IE8, FF, Chrome, но теперь IE9 не знает, как обрабатывать обратный вызов, потому чтотипы ответа и пантомимы не совпадают.IE9 сообщает об ошибке следующего скрипта при использовании параметра jsonCallback, потому что ему не нравится тип mime.

SEC7112: Сценарий от http://tables.googlelabs.com/api/query?sql=select * от 588320 & hdrs = false & jsonCallback = LoadTable был заблокирован из-за несоответствия типов MIME.

Есть ли обходной путь для менянеобходимость размещения src локально (или я делаю что-то не так)?

Response Headers

Content-Type text/plain; charset=UTF-8 
Content-Encoding gzip 
Transfer-Encoding chunked 
Date Fri, 13 May 2011 02:19:11 GMT 
Expires Fri, 13 May 2011 02:19:11 GMT 
Cache-Control private, max-age=0 
X-Content-Type-Options nosniff 
X-Frame-Options SAMEORIGIN 
X-XSS-Protection 1; mode=block 
Server GSE 


Request Headers

Host tables.googlelabs.com 
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language en-us,en;q=0.5 
Accept-Encoding gzip, deflate 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive 115 
Connection keep-alive 
Cache-Control max-age=0 

Ответы [ 2 ]

12 голосов
/ 13 мая 2011

Проблема в том, что Google отправляет декларацию X-Content-Type-Options: nosniff и возвращает файл JavaScript без JavaScript MIME-типа. Это можно исправить, только удалив объявление nosniff или исправив тип MIME, чтобы указать, что файл на самом деле является сценарием.

http://blogs.msdn.com/b/ieinternals/archive/2010/09/27/ie9-beta-google-image-search-javascript-content-type-and-nosniff.aspx

Я отправил письмо в Google об этом.

0 голосов
/ 13 мая 2011

Я бы просто вынул fileref.setAttribute("type", "text/javascript");, поскольку вероятность того, что mime-тип будет обновлен сервером, непредсказуема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...