php://输入在服务器上是空的,但它可以在localhost上运行

时间:2017-11-09 17:28:54

标签: php apache http

我正在尝试使用以下内容发出PUT请求,并且它在localhost上运行正常但是一旦我尝试在我的域上运行它就显示为空。我已检查过localhost和共享服务器上的PHP版本是否相同。我查了一下并确保allow_url_fopen=On。基本上这是不起作用的部分。我试图通过以下parse_str(file_get_contents('php://input'), $_PUT);从'php:// input'获取PUT请求的主体,并返回空。此外,当我检查文件是否存在file_exists('php://input')时,它表示该文件不存在。

我读到这些被称为包装器。我试过从不同的变量和文件中读取它但它仍然不起作用。

/ ****************编辑*************** /

var ajax = function(object){
    var oo, xhr;
    oo = j2.extend({
        method: 'get',
        credentials: false,
        beforesend: {
            'Content-Type': 'application/x-www-form-urlencoded'
        }
    }, object);


    if("XMLHttpRequest" in window){
        xhr = new XMLHttpRequest();
    }
    else{
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xhr.onreadystatechange = function(e){
        if(xhr.readyState === 4){
            oo.complete && oo.complete(xhr);

            if(xhr.status >= 200 && xhr.status < 300){
                oo.success && oo.success(xhr);  
            }
            else if(xhr.status >= 400 && xhr.status < 600){
                oo.error && oo.error(xhr);
            }   
        }
        else if((xhr.readyState === 3) && (oo.loading)){
            oo.loading(xhr);
        }
        else if((xhr.readyState === 2) && (oo.headers)){
            oo.headers(xhr)
        }
        else if((xhr.readyState === 1) && (oo.received)){
            oo.received(xhr);
        }
    }

    xhr.open(oo.method, oo.action, true);
    xhr.withCredentials = oo.credentials;

    j2.foreach(oo.beforesend, function(v, k){
        xhr.setRequestHeader(k, v);
    });

    xhr.send(oo.data);
};


ajax({ method: 'put', action: 'the url to send the request'
    , data: _.data(form) /* function that url encodes the inputs in the form*/
    , received: function(){
        form.update.disabled = true;
    }
    , success: function(xhr){
        _.process(xhr);
    }
    , error: function(xhr){
        _.process(xhr);
    }
    , complete: function(){
        form.update.disabled = true;
    }
});

0 个答案:

没有答案