В Chrome ajax не работает асинхронная обратная связь - PullRequest
4 голосов
/ 02 ноября 2010

У меня есть пример приложения, разработанного в asp.NET 3.5.На своей главной странице я использую следующий код для отображения GIF при загрузке страницы.Он корректно работает в IE и FF, но не работает в Chrome.При нажатии кнопки отправки сервер получает запрос и завершает его обработку, и пока это происходит, браузер показывает загрузочный GIF, как и ожидалось. Однако обратная передача никогда не завершается, и пользователь продолжает смотреть на прогресс GIF.Интересно, где я облажался ... Пожалуйста, помогите!

                             // Get the instance of PageRequestManager.
                             var prm = Sys.WebForms.PageRequestManager.getInstance();
                             // Add initializeRequest and endRequest
                             prm.add_initializeRequest(prm_InitializeRequest);
                             prm.add_endRequest(prm_EndRequest);
                             // Called when async postback begins
                             function prm_InitializeRequest(sender, args) {
                                 // get the divImage and set it to visible
                                 var panelProg = $get('divImage');  
                                 if( panelProg != null)             
                                 {
                                    panelProg.style.display = '';
                                     // Disable button that caused a postback
                                     $get(args._postBackElement.id).disabled = true;
                                 }
                             }
                             // Called when async postback ends
                             function prm_EndRequest(sender, args) {
                                 // get the divImage and hide it again
                                 var panelProg = $get('divImage'); 
                                 if(panelProg != null)
                                 {               
                                    panelProg.style.display = 'none';
                                    $get(sender._postBackSettings.sourceElement.id).disabled = false;

                                 }
                             }

Мой divImage прост

  <div id="divImage" style="display: none">

        <img id="imgId1" src="../../App_Themes/Images/progressbar.gif" style="border-width:0px;" />
        <br />
        Please wait...

    </div>

Ответы [ 2 ]

3 голосов
/ 19 января 2016

Добавьте следующий скрипт на свою страницу.

<script type="text/javascript">
    Sys.Browser.WebKit = {}; //Safari 3 is considered WebKit
    if( navigator.userAgent.indexOf( 'WebKit/' ) > -1 )
    {
        Sys.Browser.agent = Sys.Browser.WebKit;
        Sys.Browser.version = parseFloat( navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]);
        Sys.Browser.name = 'WebKit';
    }
</script>

Подробнее на: http://blog.joeydaly.com/uncaught-sys-scriptloadfailedexception-sys-scriptloadfailedexception

0 голосов
/ 04 ноября 2010

У меня проблемы с ajax в Chrome в моей среде разработки (localhost без домена .something).Когда я переключаюсь на прием, Chrome работает нормально.В какой среде вы работаете?

Можно попробовать изменить URL-адрес dev в файле хоста на что-то с расширением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...