2009-09-19 2 views
1

ASP.Net MVC 앱에서 HTML 컨텐트를 가져 오는 중 간단한 $ .ajax 요청이 있습니다.Firefox에서 Jquery + ASP.Net MVC를 사용하여 파서 받기하기

 // Load the claim table 
    function GetClaimTable() { 
     $.ajax({ 
      type: "GET", 
      url: "claimtable", 
      data: {}, 
      datafilter: null, 
      dataType:'text', 
      success: function(msg){ 
       alert(msg); 
       $("#claimTable").html(msg.responseText); 
      }, 
      error: function(msg, sdf, sdd) { 
       alert(sdf); 
       alert(sdd); 
      } 
     }); 

하지만 대신 parseerror가 표시됩니다. 파이어 폭스에서 200 OK를 볼 수 있기 때문에 호출에 성공했으며 error에는 responseText 속성에 올바른 데이터가있는 XmlHttpRequest 객체가 있습니다.

코드는 IE에서는 잘 작동하지만 파이어 폭스에서는 실패합니다. 클레임 가능 URL은 간단한 MVC 작업입니다.

여기에서 나는 jQuery/ASP MVC -- parsererror in "$.ajax" calls을 읽습니다. 이는 jquery 1.3.2에서 해결 된 오타 때문입니다. 하지만 1.3.2이 있고이 오류가 발생합니다.

어떤 도움이 필요합니까?

+0

전체 구문 분석 오류를 게시 할 수 있습니까? –

+0

에는 전체 구문 오류가 없습니다. 그게 전부입니다. 그것은 문자열입니다. "parsererror" –

답변

0

나는 마침내 왜 이런 일이 발생했는지 알아 냈습니다. 그 이유는 jQuery 웹 서비스 요청을 더 부드럽게 처리하기 위해 작성한 ajaxSetup 때문입니다. 분명히 뭔가 새로운 기능의 설정을 무시하고 parsererror가 발생했지만 잘못된 것이 었습니다. 나는 ajaxSetup을 지웠고 이제는 잘 작동하고있다.

이것은 내 삶의 3 시간을 파괴 한 기능이었습니다.

$.ajaxSetup({ 
    type: "POST", 
    cache:false, 
    contentType:"application/json;charset=utf-8", 
    data:"{}", 
    dataFilter: function(data) { 
     var msg; 

     if (typeof (JSON) !== 'undefined' && 
      typeof (JSON.parse) === 'function') 
      msg = JSON.parse(data); 
     else 
      msg = eval('(' + data + ')'); 

     if (msg.hasOwnProperty('d')) 
      return msg.d; 
     else 
      return msg; 
     } 
}); 

매우 순진 해 보인다. 뭐라고?

+0

그것은 utf-9를 말하고 ...? –

+0

그건 오타였습니다. –

-1

msg.responseText 할 필요가 없습니다. msg 자체가 responseTExt입니다.

+0

흠 ... 나는 요청이 실패했다고 말한 것 같습니다. 오류 함수 msg에는 responseText 속성이 있습니다. 성공한다면 성공하지 못할 것입니다. –

0

서버에서 HTML을 가져 오려면 왜 dataType : 'text'를 지정 했습니까? 액션이 다시 전송할 ContentType 헤더는 무엇입니까? 서버가 보내는 ContentType 헤더와 실제 내용간에 약간의 불일치가있는 것처럼 보입니다.

+0

contentType HTML도 시도했습니다. 궁극적으로는 구문 분석하지 말아야 할 contentType이기 때문에 텍스트를 사용했습니다. –

관련 문제