发布请求无效

时间:2011-06-20 20:29:12

标签: post titanium appcelerator

我有一个Android应用程序和一个非常简单的Web服务,可以在具有3个值的数据库中进行插入。

钛代码与文档中给出的示例最相似

var xhr = Ti.Network.createHTTPClient();
xhr.onload = function(e) {};

xhr.open('POST','http://www.micheleantonaci.altervista.org/test/foobar.php');
xhr.send({
"latitude":00100,
"longitude":10000,
"type":'From Nexus'
});

,网络服务只是

<?php       
   $con=mysql_connect('http://www.micheleantonaci.altervista.org/','***','***');
   mysql_select_db('***',$con);
   if(isset($_REQUEST['submit']))
{  
    $latitude=$_POST['latitude'];
    $longitude=$_POST['longitude'];
    $kind=$_POST['type'];

    $sql="insert into foobar (latitude,longitude,type) values ('$latitude','$longitude','$kind')";
    $res=mysql_query($sql) or die (mysql_error());
}
?>

现在,当我尝试使用浏览器提供值的webservice时,它运行良好,但是对于应用程序,我没有得到任何结果,任何建议?应用程序不会崩溃或记录任何错误

4 个答案:

答案 0 :(得分:1)

您必须使用PHP函数json_decode来获取值。

答案 1 :(得分:0)

尝试添加标题:

xhr.setRequestHeader("Content-Type", "application/json");

你还应该在你的PHP中做一个var_dump($ _ POST),看看里面有什么,不确定你会把你的东西放在分开的变量中......

答案 2 :(得分:0)

当我看到这样的问题时,我设置了'Charles'或类似的代理,让设备通过代理发送它的请求。然后,您可以查看设备是否发送了预期的内容。

您也可以尝试

xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

答案 3 :(得分:0)

代码是对的,问题出在框架本身上,当天post方法无效。 现在已经修好了。