我试图发送一个POST请求,Drupal的服务模块和JSON_Server模块,但是我得到

{ “#ERROR”:真 “#DATA”: “无效方法”}

由于PhoneGap的运行从本地手机上的HTML文件,我应该需要约JSONP担心。我对此的问题是,我必须张贴的数据,JSONP只允许GET。任何想法将是有益的。谢谢!

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

}
有帮助吗?

解决方案

所以我理解了它,它有与冲突内容类型做

请确保您将其设置为点击 内容类型=应用程序/ x-WWW窗体-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);
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top