2017-07-27 3 views
0

私はクエリ文字列を使用してフォームからサーバーにデータを渡しています。クエリ文字列は次のようになります。サーバーにデータを渡す方がいいですか?

this.$http.post('http://localhost:3000/operation?Stime='+this.Stime+'&Etime='+this.Etime+'&eAMPM='+this.eAMPM+'&sAMPM='+this.sAMPM+'&id='+this.id+'&activity='+this.activity+'&auto_insert='+this.auto_insert+'&yearmonthday='+this.yearmonthday+'&color1='+this.c) 

と私のサーバーでは、私は、クエリの変数を格納するためにすべてのこれらの変数があります。

var color = req.query.color1; 
var Stime = req.query.Stime; 
var Etime = req.query.Etime; 
var sAMPM = req.query.sAMPM; 
var eAMPM = req.query.eAMPM; 
var id = req.query.id; 
var activity = req.query.activity; 
var requestAccepted = req.query.requestAccepted; 
var yearmonthday = req.query.yearmonthday; 
var auto_insert = req.query.auto_insert; 

をちょうどちょうどに私の変数を投稿するコードの多くのように思えますサーバー(それはうまく動作する)しかし、私はそれをリファクタリングすることができる/クリーナーを作ることができるいくつかの方法があるのだろうかと思っていた

+0

のですか?データ属性を使用してデータをJSONオブジェクトとして送信 –

+1

JSONはここにあなたの友人です。それは要求のペイロードとして行くでしょう。ルーティングのためにいくつかのクエリ文字列を保持することはできます。私は今すぐ急いでいるので、私は質問に答えていないが、私はこれが最良のアプローチであることをかなり確信している:https://stackoverflow.com/questions/10955017/sending-json-to-php- using-ajax – Loudenvier

+0

まあ...私は、なぜあなたはサーバー上のクエリのメンバーのローカルコピーを作成するのかは完全にはわかりません。それでも、どのライブラリ/フレームワークをクライアント側で使用していますか?たとえば、角度やjqueryでは、通常、提供されたAPIを使用してリクエストを構成し、URLを手で結合しないようにする必要があります。 –

答えて

0

もちろんです!

メッセージ本体がサーバから実際の(等フォームデータとアップロードを含む)HTTP要求データとHTTPレスポンスデータを搬送するものである:

は、HTTPメッセージボディにいくつかの研究を行うことを検討します(ファイル、画像などを含む)。あなたのケースでは


、あなたは次のようにあなたの角度$のHTTP POST要求を変更することができます - それは、角HTTPモジュール

var data = { 
    Stime: '+this.Stime+', 
    Etime: '+this.Etime+', 
    eAMPM: '+this.eAMPM+', 
    sAMPM: '+this.sAMPM+', 
    id: '+this.id+', 
    activity: '+this.activity+', 
    auto_insert: '+this.auto_insert+', 
    yearmonthday: '+this.yearmonthday+', 
    color1: '+this.c+' 
} 

$http({ 
    method: 'POST', 
    url: 'http://localhost:3000/operation', 
    data: JSON.stringify(data) 
}) 
+0

角度1.xを使用する場合は、[resources](https://docs.angularjs.org/api/ngResource/service/$resource)を使用する方が望ましい場合があります。 –

関連する問題