2016-09-13 9 views
-1

次のJQueryスクリプトがあります。関数で受信したパラメータを使ってPOSTリクエストをサーバに送信したいと思います。 keyuserIdであり、value1234であるとします。どうやってやるの?以下のコードは{ userId: 1234 }の代わりに{ key: 1234 }を送信します。 ES5でJQuery:Javascript変数からパラメータ付きのPOSTリクエストを送信

function saveElement(key, value) { 
    $.post(SERVER_ROOT + '/dosomething', { key: value }) 
    .done(function(data) { 
     alert('done!'); 
    }); 
} 

答えて

3

以前の、オブジェクトを作成する必要があり、次に括弧表記使用してプロパティを設定:ES2015で

function saveElement(key, value) { 
    var params = {}; 
    params[key] = value; 
    $.post(SERVER_ROOT + '/dosomething', params) 
    .done(function(data) { 
     alert('done!'); 
    }); 
} 

(「ES6を」)以降では、計算されたプロパティの表記法を使用することができ:

// REQUIRES ES2015+ SUPPORT 
function saveElement(key, value) { 
    $.post(SERVER_ROOT + '/dosomething', {[key]: value}) 
// -------------------------------------^---^ 
    .done(function(data) { 
     alert('done!'); 
    }); 
} 
2

これはそれを行う必要があります。

function saveElement(key, value) { 
    var dataToSend={}; 
    dataToSend[key]=value; 
    $.post(SERVER_ROOT + '/dosomething', dataToSend) 
    .done(function(data) { 
     alert('done!'); 
    }); 
} 
2

ES6を実行できる場合、computed property namesを使用して、キーを[]でラップすることができます。 JSはその変数の値を評価し、その値をキーとして使用します。

function saveElement(key, value) { 
    $.post(SERVER_ROOT + '/dosomething', { [key]: value }) 
    .done(function(data) { 
     alert('done!'); 
    }); 
} 

もしそうでなければ、オブジェクトを別々に定義し、ブラケット表記を使用してプロパティを追加する必要があります。

function saveElement(key, value) { 
    var data = {}; 
    data[key] = value; 
    $.post(SERVER_ROOT + '/dosomething', data) 
    .done(function(data) { 
     alert('done!'); 
    }); 
} 
-1
function saveElement(key, value) { 
    $.post(SERVER_ROOT + '/dosomething', { userId: value }) 
    .done(function(data) { 
     alert('done!'); 
    }); 
} 
関連する問題