Frage

Ich versuche, eine POST-Anforderung an Drupal Dienstleistungen Modul & JSON_Server Modul zu schicken, aber ich bin immer

{ "# Fehler": true, "#data": "Ungültige Methode"}

Da PhoneGap HTML-Dateien läuft von lokal auf dem Telefon, soll ich brauche, um Sorgen über JSONP. Das Problem, das ich mit, dass ist, dass ich Daten POST muss, und JSONP erlaubt nur GET. Irgendwelche Ideen wäre hilfreich. Dank!

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

}
War es hilfreich?

Lösung

Also ich es herausgefunden, es hatte mit widersprüchlichen Inhaltstypen zu tun

stellen Sie sicher, setzen Sie es als
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);
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top