senchatouch2 のクエリ文字列としてjson 配列または通常の配列を送信する必要がありますか?
2 に答える
いずれにせよ、URL で文字列のみを送信できるため、JSON がある場合はExt.JSON.encodeを使用して文字列にし、JS 配列がある場合はtoString
またはjoin
メソッドを使用して配列を平坦化し、URL に追加します。
あなたはクエリ文字列と言ったので、POSTリクエストをしていないと思います。
[編集] コメントを見ると、作成のためにサービスにデータを送信したいようですが、その場合はデータをクエリ文字列として送信するのではなく、メッセージ本文で送信する必要があります。以下は、JSON データをサービスに送信する例です。
var obj = new Object();
obj.loginEntry = new Object();
obj.loginEntry.userid = username;
obj.loginEntry.password = password;
var data = Ext.JSON.encode(obj);
Ext.Ajax.request({
url : 'http://myserver:port/service/entity',
method : "POST",
headers: {
/* Important because default is
* Content-Type:application/x-www-form-urlencoded; charset=UTF-8
* which is not supported by service
*/
'Content-Type': 'application/json'
},
params : data,
success : function(response) {
},
failure : function(response) {
}
}
);
[/編集]
Sencha Touch2 では POST メソッドを使用してパラメーターを送信しますが、Ajax Request では jsonData を使用します。
Ext.Ajax.request({ url:'', method:'POST', disableCaching:false, headers: { 'Accept':'application/json', 'Content-Type':'application/json' }, jsonData : { FirstName:fname //{"FirstName":["Sam","paul"]} }, 成功: function(response) { console.log(response.responseText); }, 失敗: function(response) { console.ログ (応答.応答テキスト); }, });