ajaxがバックグラウンドに配列を渡す

2271 ワード

var type=[1,2,3]
var postData = {"type":type};

直接伝達配列はサポートされていません
方法1:
var types=[4,5,6];
var type = types.join(",")
var postData = {"types":type};

配列のjoinメソッドをカンマで区切る必要があります.もちろん具体的な運用はバックグラウンドの必要性を見てみましょう.
方法2:
var postData = JSON.parse({"types":[1,2,3]})

バックグラウンドのニーズを具体的に見る
付jQuery版ajax完全書き方
    $.ajax({
        type:"post",  //    ,   get,  post,get,     POST  ,    type   。        data              。
        url:"  ",  //     url
        async:true,//       ,     true,          ,          。             false,                 ,           。
        data:{"   ":  },//   url(   )   
        dataType:"json",//            
        success:function (r) {
            console.log(r)//r         
        },
        error:function (r) {
            //       
        },
        beforeSend:function(){
            // success        
        },
        complete:function(){
            // success       
        }
    })

次へ移動https://blog.csdn.net/fortunegrant/article/details/79534732
get/postリクエストの違い:
1.GET要求はパラメータをURLに添付して渡すが、POST要求はHTTPメッセージの実体コンテンツとしてWEBサーバに送信する.もちろんAjaxリクエストでは、この違いはユーザーには表示されません.
2.まず「GET方式で提出されたデータは1024バイトまで」です.GETがURLで提出されているため、GETが提出できるデータ量はURLの長さに直接関係しています.実際,URLにはパラメータ上限の問題はなく,HTTPプロトコル仕様ではURL長を制限していない.この制限は、特定のブラウザおよびサーバの制限です.IEのURL長に対する制限は2083バイト(2 K+35)である.Netscape、FireFoxなどの他のブラウザでは、オペレーティングシステムのサポートに応じて理論的に長さ制限はありません.これは、パラメータデータの長さだけでなく、URL全体の長さに制限されていることに注意してください.
3.GET方式で要求されたデータはブラウザにキャッシュされるので、他の人はブラウザの履歴からアカウントやパスワードなどのデータを読み取ることができます.ある場合、GET方式は深刻なセキュリティ問題をもたらす.POST方式は相対的にこれらの問題を避けることができる.getリクエストとpostリクエストのサーバ側の違い:
4.クライアントがget要求を使用する場合、サーバ側はRequestを使用する.QueryStringはパラメータを取得するが、クライアントがpost要求を使用する場合、サーバ側はRequestを使用する.Formはパラメータを取得する.HTTP規格には、異なる目的を達成するための2つの方法が含まれている.POSTはリソースを作成するために使用され、リソースの内容はHTTPが示すコンテンツに組み込まれる.たとえば、発注フォームの処理、データベースに新しいデータ行を追加するなどです.要求に副作用がない場合(検索など)、GETメソッドを使用することができる.データ行の追加などの副作用が要求された場合、POSTメソッドを使用します.
1つの比較的現実的な問題は、GETメソッドが長いURLを生成する可能性があり、ブラウザやサーバによってはURLの長さの制限を超える可能性があるということです.ただし、次の場合は、キャッシュファイル(サーバ上のファイルまたはデータベースの更新)を使用してサーバに大量のデータを送信できない(データ量制限なし)POST要求を使用してください.