Send POST data using XMLHttpRequest

前端 未结 13 1437
说谎
说谎 2020-11-21 04:27

I\'d like to send some data using an XMLHttpRequest in JavaScript.

Say I have the following form in HTML:

<         


        
13条回答
  •  耶瑟儿~
    2020-11-21 04:55

    var util = {
        getAttribute: function (dom, attr) {
            if (dom.getAttribute !== undefined) {
                return dom.getAttribute(attr);
            } else if (dom[attr] !== undefined) {
                return dom[attr];
            } else {
                return null;
            }
        },
        addEvent: function (obj, evtName, func) {
            //Primero revisar attributos si existe o no.
            if (obj.addEventListener) {
                obj.addEventListener(evtName, func, false);
    
            } else if (obj.attachEvent) {
                obj.attachEvent(evtName, func);
            } else {
                if (this.getAttribute("on" + evtName) !== undefined) {
                    obj["on" + evtName] = func;
                } else {
                    obj[evtName] = func;
                }
    
            }
    
        },
        removeEvent: function (obj, evtName, func) {
            if (obj.removeEventListener) {
                obj.removeEventListener(evtName, func, false);
            } else if (obj.detachEvent) {
                obj.detachEvent(evtName, func);
            } else {
                if (this.getAttribute("on" + evtName) !== undefined) {
                    obj["on" + evtName] = null;
                } else {
                    obj[evtName] = null;
                }
            }
    
        },
        getAjaxObject: function () {
            var xhttp = null;
            //XDomainRequest
            if ("XMLHttpRequest" in window) {
                xhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            return xhttp;
        }
    
    };
    
    //START CODE HERE.
    
    var xhr = util.getAjaxObject();
    
    var isUpload = (xhr && ('upload' in xhr) && ('onprogress' in xhr.upload));
    
    if (isUpload) {
        util.addEvent(xhr, "progress", xhrEvt.onProgress());
        util.addEvent(xhr, "loadstart", xhrEvt.onLoadStart);
        util.addEvent(xhr, "abort", xhrEvt.onAbort);
    }
    
    util.addEvent(xhr, "readystatechange", xhrEvt.ajaxOnReadyState);
    
    var xhrEvt = {
        onProgress: function (e) {
            if (e.lengthComputable) {
                //Loaded bytes.
                var cLoaded = e.loaded;
            }
        },
        onLoadStart: function () {
        },
        onAbort: function () {
        },
        onReadyState: function () {
            var state = xhr.readyState;
            var httpStatus = xhr.status;
    
            if (state === 4 && httpStatus === 200) {
                //Completed success.
                var data = xhr.responseText;
            }
    
        }
    };
    //CONTINUE YOUR CODE HERE.
    xhr.open('POST', 'mypage.php', true);
    xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    
    
    if ('FormData' in window) {
        var formData = new FormData();
        formData.append("user", "aaaaa");
        formData.append("pass", "bbbbb");
    
        xhr.send(formData);
    
    } else {
    
        xhr.send("?user=aaaaa&pass=bbbbb");
    }
    

提交回复
热议问题