2012-01-15 2 views
2

Я пытаюсь следовать вариант # 3 в растворе при этом SO сообщение: A controller action which returns a partial view inserts the logon page when authorization failsМетод JQuery AjaxComplete Удаление пользовательских заголовков?

Я бегу в проблему чтения мой пользовательский заголовок в методе ajaxComplete в JQuery.

Я подтвердил в стельку и инструменты отладки хром, что пользовательский заголовок, на самом деле отправляется обратно и получил в браузере ...

Response Headers (в Fiddler):

Server: ASP.NET Development Server/10.0.0.0 
Date: Sun, 15 Jan 2012 04:00:13 GMT 
X-AspNet-Version: 4.0.30319 
X-AspNetMvc-Version: 3.0 
Unauthorized: 1 
Cache-Control: private 
Content-Length: 0 
Connection: Close 

Ответ Заголовки (как полученные Chrome):

Cache-Control:private 
Connection:Close 
Content-Length:0 
Date:Sun, 15 Jan 2012 04:12:13 GMT 
Server:ASP.NET Development Server/10.0.0.0 
Unauthorized:1 
X-AspNet-Version:4.0.30319 
X-AspNetMvc-Version:3.0 

Response Headers (как найти из вызова "getAllResponseHeaders()" на переменную XMLHttpRequest перешла в ajaxComp Lete):

Date: Sun, 15 Jan 2012 04:42:21 GMT 
X-AspNet-Version: 4.0.30319 
Connection: Close 
Content-Length: 65 
X-AspNetMvc-Version: 3.0 
Server: ASP.NET Development Server/10.0.0.0 
Content-Type: application/json; charset=utf-8 
Cache-Control: private 

Интересно, что функция, которая вызывается после возврата запроса исходного АЯКСА (как инициировано JQuery) не получить Несанкционированный заголовок.

Кто-нибудь знает, что здесь происходит и что я могу сделать, чтобы решить эту проблему?

Вот мой "ajaxComplete" JavaScript код

$(document).ajaxComplete(function (event, request, settings) { 
     alert(request.getResponseHeader('Unauthorized')); 
    }); 

ответ

0

Первоначальный отклик Vucetica заставил меня думать, и я провел последний час, просматривая код jquery. Теперь у меня есть свой собственный заголовок. Похоже, что проблема связана с необработанным исключением в моем коде в обратном вызове успеха исходного запроса ajax.

Определенно, что-то я должен исправить, но кажется странным, что jquery позволял себе быть восприимчивым к этому так, что он терпит неудачу и только влияет на пользовательские заголовки. Это неожиданное поведение на самом деле привело меня в неправильном направлении.

В любом случае, спасибо за помощь.

Для полного удовлетворения, вот мой код до и после. не

Перед (не пользовательских заголовков, полученных в методе ajaxComplete)

$.ajax({ 
    type: "GET", 
    url: "/Game/GetPlay/27?roundId=" + that.gameState.RoundToDisplay, 
    contentType: "application/json; charset=utf-8", 
    data: {}, 
    dataType: "json", 
    success: function (play, request, settings) { 
     that.play = play; 
     that.startGame(); 
    }, 
    error: null, 
    cache: false 
}); 

После (рабочего)

$.ajax({ 
    type: "GET", 
    url: "/Game/GetPlay/27?roundId=" + that.gameState.RoundToDisplay, 
    contentType: "application/json; charset=utf-8", 
    data: {}, 
    dataType: "json", 
    success: function (play, request, settings) { 
     that.play = play; 
     try { 
      that.startGame(); 
     } catch(err){ 

     } 
    }, 
    error: null, 
    cache: false 
}); 
1

Вы посмотрите here можете. Это может быть полезно, если вы используете тот же плагин (ajaxmanager) на своей странице. Если нет, проверьте свои другие плагины.

+0

я видел, что SO заранее опубликовать. Я не использую Ajax Manager. У меня есть другие загруженные JS-библиотеки, я проверю, будет ли кто-нибудь из них использовать Ajax Manager или связываться с самим ajaxComplete, но на данный момент это не вероятность ИМО. – omatase

+0

Подтверждено, нет ссылки на ajaxmanager, «ajax manager», ajaxcomplete или ajaxsuccess в любом месте, кроме кода, упомянутого в моем исходном сообщении и внутри самого jquery. – omatase

+0

Вы знаете, откуда взялось «Content-Type: application/json; charset = utf-8»? У вас есть это в getAllResponseHeaders, но не в хромовой проверке. Кроме того, можете ли вы публиковать результаты getAllResponseHeaders вашего оригинального вызова ajax? –

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