【问题标题】:Drupal JSON POST from PhoneGap来自 PhoneGap 的 Drupal JSON POST
【发布时间】:2010-12-19 23:07:08
【问题描述】:

我正在尝试向 Drupal 的服务模块和 JSON_Server 模块发送 POST 请求,但是我收到了

{ "#error": true, "#data": "无效方法" }

既然 PhoneGap 在手机本地运行 html 文件,我是否需要担心 JSONP。我遇到的问题是我必须发布数据,而 JSONP 只允许 GET。任何想法都会有所帮助。谢谢!

//发送请求和回调函数 变量请求; DrupalService.prototype.request = 函数(数据对象,回调){ 请求=假; var url = DRUPAL_JSON_URL; var params = "data="+dataObject; 尝试 { 请求 = 新 XMLHttpRequest(); } 捕捉(e){ 请求=假; } 如果(请求){ req.onreadystatechange = function() {//状态变化时调用函数。 if(req.readyState == 4 && req.status == 200) { console.log(">> "+req.responseText); } } req.open("POST", url, false); req.send(参数); } }

【问题讨论】:

标签: iphone json drupal jsonp cordova


【解决方案1】:

所以我想通了,这与冲突的内容类型有关

确保将其设置为
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);
    }
}

【讨论】:

    猜你喜欢
    • 2019-05-10
    • 1970-01-01
    • 2020-07-08
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2014-03-22
    相关资源
    最近更新 更多