2014-01-30 55 views
0

我有一个从我的应用程序发送请求的问题。我在这里使用phonegap构建解决方案,其中一个插件 - 推送通知。该代码是下面:代码没有发送请求到服务器

function tokenHandler(result) { 
     var channelid; 
     if (subParam == 2) { 
      channelid = '2'; 
      } else if (subParam == 4) { 
      channelid = '4,5'; 
      } else if (subParam == 1){ 
      channelid = '3'; 
      } else { 
      channelid = '1'; 
      } 

      var url = "http://server.com/"; 
      var params = "device_token=" + result + "&device_type=ios&channels_id=" + channelid; 
      http.open("POST", url, true); 

      //Send the proper header information along with the request 
      http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
      http.setRequestHeader("Content-length", params.length); 
      http.setRequestHeader("Connection", "close"); 
      http.send(params); 

     alert("channel: " + channelid + "token: " + result); 
    } 

可变子参数位于在报头中的单独的<script>。我认为请求存在问题,但可能是错误的。即使警报不发射,但如果我移动如果警报工作正常。感谢您在这里的专业知识。

+1

尝试增加'console.debug( '子参数', subParam)'在'if'前面来实际查看'subParam'是什么。 – atomman

+1

java <> javascript .. – 2014-01-30 19:44:14

+0

谢谢atomman,但它似乎根本无法选择subParam。你能提出其他建议吗? – qqruza

回答

1

我想你也可以将subParam作为参数传递给你的函数。像:基于CHAT

开始通过比较

function tokenHandler(result, subParam){ 

    if (subParam == '2') { 
    // rest of code ... 
    } 
    // rest of code ... 

更新子参数== '2'(如字符串),因为这是它是如何别处定义。

最终溶液包括改变到使呼叫作为AJAX作为这样的:

AJAX的应该是:

$.ajax({ 
    url: url+params, 
    type: 'GET', 
    data: {'device_token': results, 'device_type': 'ios', ...[all parameters here] }, 
    success: function (result, status, XHR) { 
     alert(XHR.status); 
    }, 
    error: function() { 
     alert("error"); 
    } 
}); 

Chat Transcript

+0

它不能帮助 – qqruza

+0

这很奇怪!,它传入时是否有值?和in一样,你能复制/粘贴'console.debug('subParam',subParam);'的输出吗?@atomman建议 – ochi