0

前の質問で提案されているように、次のように Servlet クラスを介して渡すことにより、jquery.js および javascript.js ファイルをページに含めようとしています。

 response.getDocument().body().appendChild(new DataNode("<script src=\"" + themeUri
                + "/js/nativeinit.js\" type=\"text/javascript\"></script>",""));

        response.getDocument().body().appendChild(new DataNode("<script src=\"" + themeUri
                + "/js/jquery.min.js\" type=\"text/javascript\"></script>",""));

両方のファイルのメッセージが表示されますが、ブラウザにコンソールが表示されると、次のようになります。

Resource interpreted as Script but transferred with MIME type text/html: "http:8080/uri/js/nativeinit.js". myhost/:47

Resource interpreted as Script but transferred with MIME type text/html: "http:8080/uri/js/jquery.min.js". myhost/:47

その後:

Uncaught SyntaxError: Unexpected token <                     nativeinit.js:1
Uncaught SyntaxError: Unexpected token <                     jquery.min.js:1

何が問題で、スクリプトとして読み取ることができませんか? 予期しないトークンのこの奇妙なメッセージはなぜですか? 何を変更/追加する必要がありますか?

アップデート:

web.xml ファイルにも追加しました。

<mime-mapping>
        <extension>js</extension>
        <mime-type>application/javascript</mime-type>
    </mime-mapping>

しかし、同じメッセージの問題が残ります。vaadin 7 でアノテーションが推奨される方法であることは承知して@Javascriptいますが、一般的な方法でも同様に機能するはずです。Servlet Class に Content Type を設定しません。からのメソッドを提供しないhttps://vaadin.com/api/BootstrapPageResponeからのクラスのみを使用できます。そうでなければ、プログラムでも設定したでしょう。 ServletResponse

4

2 に答える 2

0

この質問を確認してください: Chrome は「リソースはスクリプトとして解釈されましたが、MIME タイプは text/plain で転送されました。」と言っていますが、何が得られますか? - ブラウザーがスクリプトを要求すると、サーバーから text/html として応答が得られる可能性があります。サーバー応答の MIME タイプを確認してください。

于 2013-10-02T11:08:16.550 に答える
0

この記事@Javascriptで説明されているように、アノテーションを使用することをお勧めします。

于 2013-10-02T12:40:44.477 に答える