2011-11-25 2 views
1

jQuery로 ajaxpro 스크립트를 대체하려고하지만 Ajaxpro 또는 jquery를 사용할 때 서버에서 응답을 얻는 중 응답이 인식되지 않습니다.jQuery Ajax, .NET 서버에서 이상한 응답

이 JQuery와 전화입니다 :

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/ajaxpro/CMS.ItemRetrieve.ashx", 
    data: jsonData, 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("X-AjaxPro-Method", "ItemRetrieve"); 
     xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); 
    }, 
    success: function(responseText) { 
     console.log(responseText); 
    } 
}) 

그리고이 이상한 반응이다 :

[0,"\r\n\r\n<div id=\"content\">test</div>\r\n "];/* 

내가 보답으로 HTML이나 XML을 기대하고 있습니다 만,이 배열 것 같다? 나는 도주하고 사납다는 것을 이해하지 못합니다. json으로 dataType을 설정하려고 시도했지만 json이 아니라 html이 아닌 javascript일까요? 서버 응답 내용 유형이 텍스트로 설정되어있는 것 같습니다.

제 질문은이 응답을 HTML로 사용하거나 HTML로 변환하는 방법입니다.

답변

1

dataType을 지정하지 않으면 jQuery는 AJAX 호출에서 수신 한 데이터의 형식을 가장 잘 추측합니다. 시간의 90 %가 맞습니다. 다른 시간에는 약간의 도움이 필요합니다.

이 시도 : 답장을

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/ajaxpro/CMS.ItemRetrieve.ashx", 
    data: jsonData, 
    dataType: "html", // Explicitly set the return data type 
    ... 
}); 

More information here

+0

덕분에,이 내가 시도 우선이었다. 그리고 여전히 응답 헤더에서 동일한 wierd 응답과 동일한 content-type을 얻었습니다. "Content-Type \t text/plain; charset = utf-8". –