0

2k以上のパラメーターを使用してフォームデータを送信していますが、サーバーが受信するのはその半分未満です。

$.ajax({
    url: 'inner.php?option=param',
    type: 'POST',
    data: $('#form').serialize(),
    dataType: "text",
    success: function(data) {
        //success action
    },
    error:function (xhr, ajaxOptions){
        //error action
    }  
});

一部のパラメーターはAjaxによって投稿されています-

1190583_1306134[]   1
1226739_1343934[]   

私のアプリケーションはPHPで書かれています。前もって感謝します。

4

4 に答える 4

1

空の要素を投稿する必要はないと思います。

データを置き換える:$('#form').serialize()

データ付き:$('#form :input[value!='']').serialize()

うまくいけば、それはあなたのために働くでしょう。

于 2013-01-29T17:55:03.967 に答える
1

まったく同じことで2時間無駄になりました-phpバックエンドの部分的な$_POSTデータ(〜3500のうち〜1000)。

これはapacheログで見つかりました:

Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0, referer: http://app1.local/full_path

max_input_varsphp.iniでコメントを外し、10000に変更して、apacheを再起動するにはこれで十分です。その後、すべてが再び機能していました;)

于 2014-10-15T21:08:10.093 に答える
1

私も同じ問題を抱えていました。理由はわかりませんが、$。ajaxtrucantesは文字列として渡されたデータを投稿します。

これを解決するには、代わりにオブジェクトデータを使用します。

例えば

$data=$('form').serialize();
$data=JSON.parse('{"' + decodeURI($data.replace(/&/g, "\",\"").replace(/=/g,"\":\"")) + '"}');
$.ajax({
       url:$url,
       data:$data,
       ...
});

これがお役に立てば幸いです;)

于 2015-04-22T13:43:01.810 に答える
0

データを介した直接フォームピックアップを使用しているときにエラーリクエストが切り捨てられていることに気付いた場合: Firefoxデバッガコンソールの新しいFormData(this)では、データ全体が実際に投稿されている可能性があり、エラーはfalseのようです。グーグルクロームがエラーを報告せず、投稿された画像の実際のチェックで、それが実際にアップロードされていたことに気付くために、私は数時間を費やす必要がありました。

ちなみに、直接フォームピックアップ自体はシリアル化を必要とせず、画像もアップロードできます。

于 2021-02-13T05:47:56.687 に答える