2016-11-15 2 views
3

は、私は、Ajax機能を使用してデータを取得しようとしているが、私のコードが返されます。javascriptでオブジェクトを初期化するときの要素名の使い方は?

Uncaught SyntaxError: unexpected string..

Javascriptを:

var myParams = []; 
myParams[$('#csrf').attr('name')] = $('#csrf').val(); 
myParams['module'] = 'culinary'; 
myParams['id'] = '12'; 
:私の友人の
var myParams = { 
    $('#csrf').attr('name') : $('#csrf').val(), 
    'module' : 'culinary', 
    'id' : '12', 
} 
$.ajax({ 
    url: '/uploader/get_list', 
    type: 'GET', 
    data: myParams, 
    success: function(response) { 
    reponse = $.parseJSON(response); 
    console.log(response); 
    } 
}); 

一つ

はこれを使用することが提案しました

しかし、2番目の方法を使用すると、PHP関数はパラメータを認識できません。

ajax関数にパラメータを送信する正しい方法は何ですか?

+0

'myParams [$( '#csrf')。attr( 'name')] = $( '#csrf')。val();' - これはうまくいくはずです。おそらく、この変数に、ここで指定した名前、すなわち '#csrf'の名前属性とは異なるPHPコード内の別の名前でアクセスしようとしています。そして、はい、以下の答えに記載されているようなタイプミスがあります。それは 'var myParams = {}; 'でなければなりません。 –

+0

@MohitBhardwaj私は他のいくつかのajax関数で同じコードを使用していますので、変数名ではないと思います。 2番目のメソッドは、POST型のAjaxの場合にのみ動作するようです。私は理由を知らない:/ – dapidmini

答えて

2

問題はmyParamsオブジェクトを作成していることです。変数を使用してキーを作成するには、カッコ表記を使用する必要があります。これを試してみてください:

2番目の例は、配列を作成したために機能しません。 []、オブジェクトではない{}

はまた、あなたがリクエストのdataTypeプロパティを設定している場合、あなたはjQueryのは、あなたのためにそれを行いますと、手動で応答を解析する必要はありませんのでご注意:

$.ajax({ 
    url: '/uploader/get_list', 
    type: 'GET', 
    data: myParams, 
    dataType: 'json', 
    success: function(response) { 
    console.log(response); 
    } 
}); 
+0

ありがとう!魅力的に働いた! dataTypeのことをありがとう – dapidmini

2

あなたは新しいオブジェクト{}を定義してはいけません新しい配列[]

var myParams = []; 

は次のようになります。

var myParams = {}; 

これが役に立ちます。

関連する問題