3

我使用 require.js 文本插件(https://github.com/requirejs/text)从服务器加载我的 html 模块。

服务器有另一个主机,因此通过在 require.config 对象中使用 Xhr 来允许 coss-domain-request。

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) 
})

在broser中得到:

资源解释为脚本,但使用 MIME 类型 text/html 传输:“ http://app-id.appspot.com/gadget/js/app/view_templates/header.html ”。require.js:1843 Uncaught SyntaxError: Unexpected token < header.html:1

有谁知道问题出在哪里?

感谢帮助

4

1 回答 1

0

我花了好几个小时才在这里找到它。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'
}
于 2016-07-14T08:58:08.333 回答