2014-02-19 65 views
0

大家好我想要集成一个web服务在钛,但是当我按下按钮来调用它我的日志终止,我的应用程序冻结。我没有收到错误消息。下面是我的代码:Web服务调用导致我的应用程序崩溃

 Post_array.push({ 
      variable1:value1, 
      variable2:value2 
      variable3:value3 
     }); 



    var AddJobURL="http:/NUMBERS/MytestURL"; 
    var AddJobxhr=Titanium.Network.createHTTPClient(); 

    AddJobxhr.onload=function(){ 
     console.log("Response text ----------------------"+ this.responseText); 
     var doc= JSON.parse(this.responseText); 
    }; 

    AddJobxhr.onerror=function(e){ 
     alert(e.error); 
    }; 

    AddJobxhr.open('POST', AddJobURL); 
    AddJobxhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    AddJobxhr.send(Post_array); 

编辑:我已经意识到这个问题。我的问题是我的Post_array。我现在正在做的是将4个项目按到一个按钮上点击一个数组,然后在第二个不同的按钮上点击另外的4个项目然后发布这个数组,但是他在这个点的数组是[object Object],[object Object]我认为这是我的问题?任何想法如何解决?

回答

2

发送数据的格式在这里我猜不正确。

下面是你需要发送的数据格式:

AddJobxhr.send({ 
    variable1: "value1", 
    variable2: "value2" 
}); 

凡为Post_array在上述格式的数组,而不是。

你应该这样做:

var Post_array = {}; 

Post_array = $.extend(Post_array, { 
    "variable1": "value1", 
    "variable2": "value2", 
    "variable3": "value3" 
}); 

Post_array = $.extend(Post_array, { 
    "variable4": "value4", 
    "variable5": "value5", 
    "variable6": "value6" 
}); 

AddJobxhr.send(Post_array); 
+0

感谢您的答复。正如我使用钛经典,我不认为我可以利用延伸,如你所建议的。关于引号,我的一些变量是整数,有些是字符串,它们是否仍然有引号缠绕? – user2363025

1

或者你可以这样做:

var Post_array = {}; 

// Doesn't have to be in quotes it's just the value you assign, strings are in quotes 
// where as integers are not. Let us assume that value1, valu2 and value3 are the 
// variable and they can hold anything; 

Post_array["variable1"] = value1; 
Post_array["variable2"] = value2; 
Post_array["variable3"] = value3; 

Post_array["variable4"] = value4; 
Post_array["variable5"] = value5; 
Post_array["variable6"] = value6; 

AddJobxhr.send(Post_array);