2009-11-24 12 views
0

Je suis en train d'envoyer une requête POST au module de services de Drupal & module JSON_Server, mais je reçoisDrupal JSON POST de PhoneGap

{ "#error": true, "#data": "Méthode invalide"}

Étant donné que PhoneGap exécute des fichiers html localement sur le téléphone, devrais-je me préoccuper de JSONP. Le problème que j'ai avec cela est que je dois envoyer des données, et JSONP ne permet que GET. Toutes les idées seraient utiles. Merci!

 
//SEND REQUEST AND CALLBACK FUNCTION 
var req; 
DrupalService.prototype.request = function(dataObject, callback){ 

    req = false; 

    var url = DRUPAL_JSON_URL; 
    var params = "data="+dataObject; 

    try { 
     req = new XMLHttpRequest(); 
    } catch(e) { 
     req = false; 
    } 

    if(req) { 
     req.onreadystatechange = function() {//Call a function when the state changes. 
      if(req.readyState == 4 && req.status == 200) { 
       console.log(">> "+req.responseText); 
      } 
     } 

req.open("POST", url, false); 
     req.send(params); 
    } 

} 
+0

Vous devriez vraiment envisager d'utiliser une bibliothèque standard, https://github.com/workhabitinc/drupal-ios-sdk –

Répondre

0

Alors je me suis dit dehors, il a dû faire avec des types de contenu en conflit

assurez-vous de la définir comme
Content-Type = application/x-www-form-urlencoded;

var DRUPAL_JSON_URL = "http://myDrupalsSite.com/services/json"; 

var req; 
DrupalService.prototype.request = function(dataObject, callback){ 
    var url = DRUPAL_JSON_URL; 

    req = false; 


    var params = "method=system.connect"; 

    try { 
     req = new XMLHttpRequest(); 
    } catch(e) { 
     req = false; 
    } 

    if(req) { 
     req.onreadystatechange = function() {//Call a function when the state changes. 
      if(req.readyState == 4 && req.status == 200) { 
       alert("test " + req.responseText) 
       console.log("RESPONSE "+req.responseText); 

      } 
     } 
     req.open("POST", url, true); 
     req.setRequestHeader("Content-length", params.length); 
     req.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
     req.send(params); 
    } 
}