2010-11-30 6 views
3

Jquery 양식 플러그인을 사용하여 이와 같은 양식 데이터를 제출하고 있습니다..ajaxSubmit() 호출에서 반환 된 데이터를 처리하는 방법은 무엇입니까?

$('#AddLocalImageForm').ajaxSubmit({ 
        beforeSubmit: function() { alert('b4'); }, 
        success: function(data) { alert('afa');}, 
        dataType: 'json' 
       }); 


<form id="AddLocalImageForm" action="Service/UploadCustImage.ashx" method="post" enctype="multipart/form-data"> 
     <input type="file" name="CustImage" id="CustImage" /> 
    <br /> 
    <label for="ImageName">Name</label> 
     <input type="text" name="ImageName" id="ImageName"/> 
    <br /> 
    <input type="submit" /> 
</form> 

내가 데이터를 게시하고 페이지가 제대로 게시 된

context.Response.Write(JsonData); 

내가 모든 것을 볼 수와

context.Response.ContentType = "application/json"; 

반환 데이터가있는 ASHX 페이지 내가 무엇입니까 핵심 Json 데이터 돌아하지만 항상 내 브라우저에서 Json 데이터를 다운로드하라는 메시지가 나타납니다. 내가 원하는 것은 백그라운드에서 반환 된 데이터를 가져와 일부 Dom 요소를 업데이트 할 수 있습니다. beforeSubmit 함수는 실행되지만 성공 함수는 결코 수행하지 않습니다. 플러그인의 코드를 sample 페이지로 복사하면 동일한 결과가 나옵니다.

반환 된 데이터가 다운로드하라는 메시지가 아닌 함수에 의해 처리되도록하려면 어떻게해야합니까?

업데이트 : 그래서

내가 더 이상 파일을 다운로드하라는 메시지가 있어요
context.Response.ContentType = "text/html"; 

에 게시 된 데이터를 처리하는 ASHX 페이지의 콘텐츠 유형을 변경하지만 난 아직도을 처리 할 수 ​​없습니다 나는 경우 성공 함수가 결코 실행되지 않기 때문에 데이터를 반환했습니다. 성공했는지 또는 데이터가 반환되면 성공했다고 가정해야합니까?

+2

왜 투표가 실패합니까? 내가 분명하지 않다면 나는 기꺼이 다시 시도해 볼 것이다. – etoisarobot

답변

2

파일 입력이 AJAX 제출에 큰 문제를 일으키지 만 XMLHttpRequest를 통해 지원되지 않으므로 양식 플러그인에 문제가 있지만 양식이 반환 데이터가있는 한 평소와 약간 다른 방식으로 작동 함을 의미합니다. 걱정.

file upload issue과 관련하여 플러그인 설명서를 읽었습니다.

+0

파일 업로드 문제에 대한 링크가있는 좋은 자료입니다. 서버에서 반환 된 JSON에 textarea 태그를 추가하는 것은 힘들지만 문제가 될 수 있습니다. – Steven

+0

@shambleh : 예. 똑똑한 해결 방법입니다. – Orbling

3

언젠가 다른 사람을 도울 수 있기를 희망하면서 내 자신의 질문에 대답하십시오.

그래서 성공하지 못한 이유는 요청이 성공했다고 생각하지 않기 때문입니다. 내가

context.Response.ContentType = "text/html"; 

에 ASHX 세트의 ContentType이 함께

  $('#AddLocalImageForm').ajaxSubmit({ 
        beforeSubmit: function() { alert('b4'); }, 
        success: function() { alert('Run on Success'); }, 
        error: function(request, errordata, errorObject) { alert(errorObject.toString()); }, 
        dataType: 'json' 
       }); 

로 변경하면 나는 ASHX이 잘못된 JSON을 반환되는 오류가 발생합니다. 그래서 나는 파일을 다운로드하라는 메시지가 리턴 된 JSON을 처리 할 수 ​​있어요 있지 않다

   $('#AddLocalImageForm').ajaxSubmit({ 
        beforeSubmit: function() { alert('b4'); }, 
        success: function() { alert('Run on Success'); }, 
        error: function(request, errordata, errorObject) { alert(errorObject.toString()); } 
        //dataType: 'json' 
       }); 

같은 데이터 유형 옵션을 주석 경우;

Wheeewwwww !!!

관련 문제