Предупреждение js: ресурс интерпретируется как скрипт, но передается с типом MIME text / plain - PullRequest
1 голос
/ 07 сентября 2011

Я запускаю запрос ajax / jsonp в мое облачное приложение:

    var obj = $.ajax({
        url: "http://xyz",
        dataType: 'jsonp',
        success: function(data) {  
            //SOME CODE  
        },
        error: function() {
            //SOME CODE
        }
    });

ответ в порядке, и я могу прочитать мои данные. но я получаю следующее предупреждение:

Resource interpreted as Script but transferred with MIME type text/plain.

мне нужно сделать этот запрос запросом jsonp (междоменная политика), AFAIK jsonp возвращается как сценарий и исполняется браузер. я должен установить заголовок запроса? Я попробовал это с опциями «принимает» и «конвертеры», но пока не работал. (Я использую GoogleChrome, но также происходит в Safari / FF)

ура, Том

PS: Я хочу избавиться от предупреждения, так как этот запрос ajax срабатывает каждые 2 секунды. Так что консоль выглядит довольно плохо ...

Ответы [ 4 ]

4 голосов
/ 07 сентября 2011

Сервер должен отправить заголовок Content-Type, установленный на text/javascript, при отправке сценария JSONP.

1 голос
/ 08 сентября 2011

CouchDB сама отправляет текст / обычный тип контента.Единственный другой тип, который вы можете убедить отправить - это «application / json», если вы отправляете «Accept: application / json» в качестве заголовка.

Похоже, что CouchDB должен отправлять текст / javascript при доставке ответа jsonp, хоть.Если бы вы могли подать билет, я уверен, что это будет сделано.

0 голосов
/ 12 сентября 2013

Вы отправляете какую-либо информацию о кодировке в заголовках?У меня была проблема с ответами CouchDB, и я обнаружил, что добавление charset=utf-8 к моему Accept или Content-Type заголовку привело к тому, что CouchDB вернул содержимое text/plain вместо ожидаемого application/json.Возможно, вы можете решить эту проблему, изменив заголовок, если случай достаточно похож.

0 голосов
/ 07 сентября 2011

Проблема на целевом сервере, потому что он устанавливает Content-Type: Text/plain

Вы не можете принудительно применить его без доступа к целевому серверу.Это должно быть Content-Type: text/javascript

...