2014-01-30 2 views
0

У меня возникла проблема с отправкой запроса из моего приложения. Я использую решение для сборки phonegap здесь и один из плагинов - push-уведомления. Код ниже:Код не отправляет запрос на сервер

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

переменная subParam расположен в заголовке в виде отдельного <script>. Я думаю, что есть проблема с запросом, но может быть неправильным. Даже предупреждение не стреляет, но если я двигаюсь выше, если предупреждение работает нормально. Спасибо за ваш опыт здесь.

+1

Попробуйте добавить 'console.debug ('subParam', subParam) 'перед' if', чтобы фактически увидеть, что такое 'subParam'. – atomman

+1

java <> javascript .. –

+0

Благодарю вас, атман, но, по-видимому, он почему-то не может выбрать subParam. можете ли вы предложить что-нибудь еще, пожалуйста? – qqruza

ответ

1

Я предположил, что вы также можете передать subParam в качестве параметра вашей функции. Как:

function tokenHandler(result, subParam){ 

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

Обновление на основе ЧАТ

Пуск путем сравнения subParam == '2' (как строка), так что, как это определено в другом месте.

Окончательное решение включает в себя изменение, чтобы сделать вызов, как 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

, это странно !, имеет ли оно значение, когда оно передается? Как и в, вы можете скопировать/вставить выходные данные 'console.debug ('subParam', subParam);' как @atomman предложил – ochi

Смежные вопросы