2014-09-09 3 views
0

jQuery Ajax를 사용하는 개발 서버에 ASP.Net 2.0 코드가 작동한다. ajax 호출의 결과는 드롭 다운 값을로드하는 데 사용됩니다.jQuery Ajax Stop이 호출되지 않음 (오류 없음, 200 OK)

그러나이 코드를 새 DMZ 서버에 배포하면 결과가 드롭 다운에 채워지지 않습니다. 응답으로 200 OK이 표시되지만 한 가지 분명한 것은 Type이 응답에서 다릅니다. application/json으로 예상되지만 text/plain으로 올 것입니다.

나는 콜백과 콜백 코드를 성공했다. 이와 함께 저는 아약스 시작과 중단을위한 핸들러를 가지고 있습니다. 그러나이 사건들 중 어느 것도 해고되고 있지 않습니다. error/stop 처리기가 해고되지 않는 이유는 무엇입니까? 어떻게 작동시킬 수 있습니까?

참고 : IE와 Chrome에서 동작이 동일합니다.

업데이트는 다음과 같이, 콘솔에 기록 에러가 있음을 관찰 하였다. '유형'과 관련되어 있습니까? 이 문제를 어떻게 해결할 수 있습니까?

enter image description here

참고 또한 Content-Length 아래와 같이 응답 헤더에 0로되어 있습니다.

성공 콜백

enter image description here

jQuery를

 function loadASN() 
     { 
      var receiveScanParameter = getContainerParameters(); 

      // console.log(receiveScanParameter); 

      $.ajax({ 
        type: "POST", 
        url: "rcvScanTXAdd.aspx/GetASNForPlant", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        data: JSON.stringify({ receiveScanParameter: receiveScanParameter }), 
        success: successPopulateASN, 
        error: errorFunction 
        }); 
     } 

글로벌 jQuery를 코드

//Global Ajax Error handling Function 
    function errorFunction(xhr, status, error) 
    { 
       if(xhr == 'undefined' || xhr == undefined) 
       { 
       alert('xhr undefined'); 
       } 

       alert(status); 
       alert(error); 
    } 


$(document).ready(function() 
{ 
    //Ajax Start 
    $('body').ajaxStart(function() 
    { 
     //Change cursor to waiting 
     $(this).css({'cursor':'wait'}) 
    }); 

    //Ajax End 
    $('body').ajaxStop(function() { 

     //Reset the cursor 
     $(this).css({'cursor':'default'}) 

    }); 



}); 

스크린 샷

enter image description here

+0

하여 jQuery 코드가 무엇인가에 의해 통과에 대한 C# 코드 세그먼트입니다 다음은? – Josh

+1

반환 된 결과를 구문 분석하려고 할 때 성공 콜백 또는 jQuery 내부에 예외가 발생했다는 것을 알려줍니다. 아마도 jQuery는 결과가 성공이라고 결정했으나 예외가 발생했으며 성공 및 오류 콜백 ([documentation] (http://api.jquery.com/Ajax_Events/) 참조)을 가질 수 없으므로 다른 콜백 전화 받기. 콘솔에 오류가 있습니까? –

+0

@IlyaLuzyanin 콘솔에 오류가 있습니다. 스크린 샷으로 질문을 업데이트했습니다. [그러나이 오류는 내 개발 서버에는 없습니다.] – Lijo

답변

0

에서 찾을 수 있습니다.

1 단계 : 브라우저 콘솔에 오류가 기록되어 있습니다 (결과가 null이라고 말함).

단계 [이 스크린은 해당 갱신된다 2- 다음 responsecontent length 제로임을 관찰 하였다. 또한 응답에서 (응답 헤더를 읽음으로써) 압축이 발생했음을 알 수 있습니다 (gzip).

3 단계 : 서버의 web.config를 분석했습니다. C# httpModulecompression입니다. 해당 httpModule에서 json에 대한 바이 패스 논리가 추가되었습니다. [json을이 사용자 정의 모듈로 압축하지 않기를 바란다. 나중에 사용자 정의 모듈 대신 압축을 위해 IIS을 사용할 때 JSON에 압축을 추가하는 것을 고려할 것입니다.] JSON 압축

request.ContentType.ToLower(CultureInfo.InvariantCulture).StartsWith("application/json") 

-1

의문이 API의 문서를 읽어

jQuery를 1.8로, .ajaxStop() 메소드는 문서에 첨부해야한다. 내가 그것을 알아 냈

http://api.jquery.com/ajaxStop/

같은 음

$.ajaxStart 문서

+0

하지만 내 dev 서버에서 작동하는 이유를 설명해 주시겠습니까? – Lijo

관련 문제