Grails IE Ajax проблема - PullRequest
       17

Grails IE Ajax проблема

0 голосов
/ 25 июля 2011

Я использую grails для разработки своего приложения и библиотеку 'prototype' для выполнения вызова AJAX, с которым у меня возникла проблема в IE.Во всех других браузерах мое приложение работает нормально.Вот мой код:

<html>
<g:form action="ajaxcall" id="recform">
    <g:select id="aseselect" name="art" from="${dropdownList}" optionKey="id" optionValue="value" noSelection="['':'- Select -']"/>

    <g:submitToRemote action="ajaxcall" value="submit" update="updatediv" />
</g:form>

<div id="updatediv"></div>

</div>
</html>

А это мой код контроллера:

def ajaxcall = {

    String toRender="";

    //code that makes db call and adds html into the toRender string

    render toRender;    
}

Строка 'toRender' содержит html неупорядоченного списка, который хорошо отображается в Firefox, Chrome и Safari.но не IE, который, кажется, иногда не получает весь список или иногда получает пустой список.Поведение совершенно непредсказуемо в зависимости от настроения ИЭ.

Кто-нибудь сталкивался с этой проблемой раньше?Как я могу решить это?

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 декабря 2015

Я исправил AJAX в браузере IE (11) с помощью сообщения FormData () для контроллера Grails, удалив

< meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

или изменив его на

< meta http-equiv="X-UA-Compatible" content="IE=Edge" />

в HTML раздел.

0 голосов
/ 26 июля 2011

Это связано с кэшированием IE. Я добавляю

response.setHeader("Cache-Control", "no-store")

к методам контроллера для вызовов ajax, что говорит браузеру не кэшировать этот ответ.

Таким образом, ваш метод контроллера должен выглядеть примерно так:

def ajaxcall = {

    response.setHeader("Cache-Control", "no-store")

    String toRender="";

    //code that makes db call and adds html into the toRender string

    render toRender;    
}

Здесь есть более подробное объяснение:

Grails: лучший способ отправки заголовков кэша при каждом вызове ajax

...