3

サーバーからhtmlモジュールをロードするために、require.jsテキストプラグイン( https://github.com/requirejs/text )を使用しています。

サーバーには別のホストがあるため、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) 
})

ブラウザで取得:

リソースはスクリプトとして解釈されますが、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 に答える