Текстовый плагин requirejs интерпретирует HTML как скрипт
Я использую текстовый плагин require.js ( https://github.com/requirejs/text) для загрузки моих html-модулей с сервера.
У сервера есть другой хост, поэтому разрешите запрос coss-domain-request, используя Xhr в объекте require.config.
text: {
useXhr: function (url, protocol, hostname, port) {
// allow cross-domain requests
// remote server allows CORS
return true;
}
},
Но когда я загружаю какой-то модуль, браузер пытается интерпретировать загруженный файл как файл javascript.
define([
'text!/view_templates/header.html'], function(html){
console.log(html)
})
в более широком смысле получить:
Ресурс интерпретируется как Скрипт, но передается с MIME-типом text / html: " http://app-id.appspot.com/gadget/js/app/view_templates/header.html". require.js: 1843 Uncaught SyntaxError: Неожиданный токен
Кто-нибудь имел представление, где проблема?
Спасибо за помощь
1 ответ
Мне понадобилось много часов, чтобы найти это здесь. useXhr не вызывается, вероятно, из-за неправильного ключа конфигурации. Это не просто text
, он также должен содержать путь. Так и должно быть:
'some/path/to/text': {
useXhr: function (url, protocol, hostname, port) {
return true;
}
},
Или что также должно работать:
text: {
useXhr: function (url, protocol, hostname, port) {
return true;
}
},
paths: {
text: 'some/path/to/text'
}