6

我想使用 HTTP 请求发布 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 数据的正确方法。我将如何检查数据是否已发布?网址是否包含发布的数据?

我在 onload 事件中添加的以下警报中为空。

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

我在 Windows 7 上工作,在 Android 4.2.2 上进行测试 .... 提前致谢。

4

3 回答 3

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
    }
}));

试过了,它工作,无法在文档中找到它。

于 2013-06-09T23:02:37.843 回答
1

只需使用 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, })

请参阅更新的文档

于 2014-06-18T13:10:50.353 回答
0

使用 JSON.parse

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,
    })

并发送它。它可能工作...

于 2013-03-27T10:25:43.613 回答