2013-10-02 3 views
0

Я пытаюсь включить jquery.js и javascript.js файлы на моей странице, как это было предложено в previous question путем пропускания его через класс 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 

Что не так, и он не может читать их как скрипт? Почему это странное сообщение неожиданного токена? Что мне следует изменить/добавить?

Update:

Я также добавил в мой файл web.xml:

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

но проблема с тем же сообщением остается. Я знаю, что примечание @Javascript является рекомендуемым способом в vaadin 7, но я думаю, что он должен работать и на общем пути. Я не задал тип содержимого в классе Servlet. Я могу использовать там только класс BootstrapPageRespone от https://vaadin.com/api/, который не предоставляет методы от ServletResponse. В противном случае я бы установил его также программно.

ответ

0

проверьте этот вопрос: Chrome says "Resource interpreted as script but transferred with MIME type text/plain.", what gives? - возможно, когда браузер запрашивает ваш скрипт, он получает ответ от сервера в виде текста/html. Проверьте тип ответа сервера MIME.

+0

Я добавил контент-тип: text/javascript в MIME-TYPES в конфигурации Tomcat, но это не решило проблему. Во всяком случае, я пробовал то же самое в другом проекте, и он работает. Что-то не так хорошо с тем, как я определяю файлы в Servlet, я думаю. – arjacsoh

+0

ok, так что теперь, когда ваш браузер запрашивает ex. ваш /js/jquery.min.js, он получает ответ с типом content: text/html, установленным в заголовке? – betatester07

+0

убедитесь, что вы не устанавливаете контент-текст в text/html в сервлет, этот процесс запрашивает ваши сценарии. – betatester07

0

Рекомендованный подход заключается в использовании аннотации @Javascript, как описано в this article.

Смежные вопросы