2013-03-25 14 views
6

HTTPリクエストを使用してJSONデータを送信したいとします。私は公式docsを読んで、私は彼らに従って働いています。私は次のコードを使用しています:POST JSONデータの問題チタン

var xhrpost = Ti.Network.createHTTPClient(); 

    xhrpost.onload = function(){ 
     activityIndicator.hide(); 
     alert('Posted successfully'); 
     alert(JSON.stringify(this.responseText)); 
    } 

    var posturl = 'http://qudova.com/api.php'; 

    xhrpost.open('POST', posturl); 
    xhrpost.setRequestHeader("Content-Type", "application/json"); 
    xhrpost.setRequestHeader('charset','utf-8'); 
     var params = { 
     ProjectID : picked_prj, 
     RoleID : picked_rol, 
     FirstName: first.value, 
     LastName: last.value, 
     Phone: phone.value, 
     Email: email.value, 
     City: city.value, 
     State: stat_drp.getSelectedRow(0).title, 
     Zip: zip.value, 
     Notes: notes.value, 
    }; 
    xhrpost.send(params); 

これは、JSONデータを投稿する正しい方法です。データが投稿されたことをどのように確認するのですか?投稿されたデータがURLに含まれますか?

私はonloadイベントで追加した次のアラートでnullになっています。

alert(JSON.stringify(this.responseText)); 

私は、Windows 7に取り組んでいます、アンドロイド4.2.2でのテスト....事前に感謝します。

答えて

0

使用は

var params =JSON.parse({ 
     ProjectID : picked_prj, 
     RoleID : picked_rol, 
     FirstName: first.value, 
     LastName: last.value, 
     Phone: phone.value, 
     Email: email.value, 
     City: city.value, 
     State: stat_drp.getSelectedRow(0).title, 
     Zip: zip.value, 
     Notes: notes.value, 
    }) 

をJSON.parseし、それを送信してください。それは動作する可能性があります...

+1

いいえ、それは私にエラーを与えます:未定義のオブジェクト。 –

9

Content-Typeをjsonに設定すると、入力を文字列化する必要があります。

var xhr = Ti.Network.createHTTPClient(); 

xhr.open('POST', url); 
xhr.setRequestHeader("Content-Type", "application/json"); 
xhr.setRequestHeader('charset','utf-8'); 
xhr.send(JSON.stringify({ 
    prop: 'string', 
    data: { 
     embeddedProp: 1234 
    } 
})); 

これを試してみて、それがドキュメントで見つからなかった。ただ、JSON.stringify()

JSON.stringify({ ProjectID : picked_prj, RoleID : picked_rol, FirstName: first.value, LastName: last.value,
Phone: phone.value, Email: email.value, City: city.value, State: stat_drp.getSelectedRow(0).title, Zip: zip.value, Notes: notes.value, })

を使用

+0

私は同じ問題に苦労してきました。あなたの答えに感謝します。私はこのようなものがどのように文書化されていないのかを理解していない... – Damian

関連する問題