2010-11-30 23 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ページであり、私は取得していますcorect Json Dataに戻ってきますが、私はいつもブラウザから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 !!!

関連する問題