2017-09-02 9 views
1

をパラメータを送ります印刷するために動的に作成されたフォームのHTMLを表す)は、すばやく大きくなりすぎてクエリー文字列で送信されません。私は、このパラメータをリクエスト本体の中で送信したいと思います。私はすでに試したこと:この場合は、私はこの方法で問題を抱えているクエリ文字列に代わりリクエストボディに

 $.ajax({ 
      url: '/SalesOfferInvoiceDeliveryNote/InsertUpdateCAORAC/', 
      type: 'POST', 
      data: { 
      form: $(this).parents('form').serialize(), 
      cTa: 'b', 
      cHTML: cHTML 
      } 

を、CTAとcHTMLのは正しくsendedではれるパラメータが、フォーム要素は、それがシリアル化されたキーですすべて失います。 (ajax呼び出しのこの方法でのフォームキーは、フォーム、cTa、cHTMLですが、これはまったく間違っています)。クエリ文字列体内のすべてのパラメータを送信するために何かできることはありますか?そのフォームはキーを失うことはありませんか?

答えて

2

あなたの問題は、この行である:あなたは、フォームのキー/値のペアを作成するためにFormDataを使用することができます

form: $(this).parents('form').serialize(), 

Using FormData Objectsをご覧ください。

あなたはFormData.append()のような使用することができ、追加の二つのパラメータを追加するには:

formData.append('cTa', 'b'); 
formData.append('cHTML', cHTML); 

あなたのAjaxが使用できます

var formData = new FormData($(this).closest('form')[0]); 
formData.append('cTa', 'b'); 
formData.append('cHTML', cHTML); 
$.ajax({ 
    url: '/SalesOfferInvoiceDeliveryNote/InsertUpdateCAORAC/', 
    type: 'POST', 
    data: formData 
}); 
+0

私は、このエラーが発生します:キャッチされない例外TypeError:不正な呼び出し – FrenkyB

+0

@FrenkyBをサーバー側** InsertUpdateCAORAC **が間違っているためにエラーが発生しています。 ctaとchtmlのパラメータは削除する必要があります。これらのパラメータはフォームの一部であるため、他のフォームパラメータと同様に表示されます。お知らせ下さい。ありがとう – gaetanoM

関連する問題