2012-07-25 5 views
1

IE에서 제대로 작동하지만 jQuery ajax 호출이 있지만 Chrome 및 Firefox에서 계속 오류가 발생합니다. 내 응용 프로그램의 다른 곳에서 비슷한 아약스 호출을 가지고 있으며 모든 브라우저에서 제대로 작동하지만 어떤 이유로이 브라우저는 작동하지 않습니다.jQuery ajax 호출 - 의미있는 오류 메시지 받기

먼저 IE 이외의 브라우저에서 깨는 점을 분명히하고 있습니다. 두 번째로 중요한 것은 error: function (e) {} 블록에서 의미있는 것을 얻는 방법이 있습니까? 당신은 단지 하나를 사용하는 동안

   $.ajax({ 
       type: "POST", 
       url: "http://localhost:52350/FabRouting/Webservice/FinalizeFileStream.asmx/FinalizeFileStreamDoc", 
       data: JSON.stringify({ DocID: docID, FileSize: file.size }), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
        if (data.d.length == 0) { 
         //error 
         $("[id$=txtResult]").val("error 0"); 
        } 
        else { 
         $("[id$=txtResult]").val(data.d[0].Result); 
        } 
       }, 
       error: function (e) { 
        //error 
        $("[id$=txtResult]").val("error"); 
       } 
      }); 
+0

콘솔 (F12)을 열고 오류의 내용을 확인하십시오. asp.net 오류 페이지를 반환해야합니다 (고객 오류가없는 경우) –

+0

JSON.stringify는 일부 브라우저에서는 사용할 수 있지만 일부 브라우저에서는 사용할 수 없습니다. 이 기능을 지원하지 않는 브라우저에 추가하려면 라이브러리 (예 : json2.js)를 추가해야합니다. –

+0

(e) 또는 console.log (e)에 경고 했습니까? 또한 Chrome 개발자 도구를 사용해보세요. (Ctrl + Shift + J 누르기) 콘솔을 열어 오류를보십시오. 무슨 말하는지 말해봐. –

답변

0

결국 내 오류 또는 브라우저 (결국)가되지 못했습니다. 단지 오류입니다.

저는 크로스 도메인 아약스 호출에 오류가 발생하여 문제가 발생한 곳을 계속 연구하고 읽었습니다. 나는 그 일을하려고하지 않고 있지만, 두 가지 Visual Studio 웹 서버를 웬일인지 세우는 일을했다. 나는 보았고 당분간 하드 코딩 된 URL (http : // localhost : 52350/FabRouting/Webservice .......)을 사용하여 webservice를 호출했으며 새로운 URL (http : // localhost : 59986/FabRouting/Tes .....) 페이지에 액세스 할 수 있습니다.

IE에서 문제없이 작동하고 있었지만 Chrome이나 Firefox에서이 기능을 사용하려고했을 때 작동하지 않았습니다. 페이지에 액세스하는 위치가 바뀌었고 아약스 호출에서 좋은 반환 값을 얻었습니다.

더 의미있는 오류를 얻는 방법을 알고 싶습니다. @dtryan은 저에게 부분적으로 도움이됩니다. 누구든지 나를 이해하도록 도울 수 있다면 나는 그들의 대답을 대답으로 표시하고이 대답은 표시하지 않을 것이다.

EDIT : 나는 나중에 실제로 시도한 방식과 @dtryan이 제안한 방식으로 오류 메시지를받을 수 있음을 알게되었습니다. 문제는 크로스 도메인으로 이동하려고했기 때문에 오류가 발생했지만 어떤 이유로 그 오류를 포착 할 수 없었습니다.

나는 메모리 부족 오류 등을 겪었고 캡처하고 잘 보았습니다. 나는 이것이 단지 오류가 눈에 보이지 않게하는 완벽한 폭풍이라고 생각합니다. 누구든지 이러한 오류를 포착 할 수있는 방법이 있다면 알아두면 좋을 것입니다.

+0

IE에서 작동하도록 캐싱을했을 가능성이 있습니다. –

+0

개발자 도구에서 어떤 오류가 발생했는지 알 수 있습니다. 또는 방화범이 끌려요? –

+0

오류가 발생하지 않았습니다. 문제였습니다. 오류가 발생하지 않았기 때문에 오류를 올바르게 캡처하고 있는지 확신 할 수 없었습니다. 궁극적으로 방화 녀를 들여다 보았을 때 나는 그곳에 어떤 오류도 발생하지 않았다는 것을 깨달았습니다. 이제이 문제가 해결되었으므로 계속해서 다른 오류가 발생하고이를 캡처 할 수있게되었습니다. 감사! – divtag

3

오류 기능은 세 가지 매개 변수

error: function(jqXHR, textStatus, errorThrown) { //code here } 

있습니다. errorThrown에는 좀 더 유용한 정보가 있어야합니다.

EDIT2 - 키가 끈이 아니기 때문에 깨지는 것에 대한 내 대답을 스크래치합니다. 괜찮을 것입니다. 그러나 게시물을 사용하는 경우 왜 데이터를 문자열로 변환합니까? json 배열을 직접 전달할 수 있어야합니다.

+0

현재 현재 내가 가지고있는 코드에서 오류 (jqXHR, textStatus, errorThrown) 줄을 사용하는 방법을 알아 내려고 노력하고 있습니다. 그렇지만 JSON.stringify에 따옴표를 넣으려고 시도했지만 아무 것도 변경하지 않습니다. – divtag

+1

@divtag 오류 함수를 업데이트하여 세 가지 매개 변수를 모두 사용해야합니다. 오류 : function (jqXHR, textStatus, errorThrown) { // 오류 $ ("[id $ = txtResult]") "); }' – dtryan

+0

@divtag 또한 내 두 번째 편집을 참조하십시오. 게시물을 사용하는 경우 왜 데이터를 문자열 화합니까? json 배열을 직접 전달할 수 있어야합니다. 내 생각 엔 FinalizeFileStreamDoc이 두 가지를 기대하면서 매개 변수를 전달하는 것입니다. – dtryan