JavaScript 中有 GET 和 POST 方法吗?

Are there GET and POST methods in JavaScript?

有没有什么方法可以像在 PHP 中那样在 JavaScript 中使用 GET 和 POST 方法?当然,我可以使用 PHP 在脚本标签中回显 javascript 代码,但在我的情况下这是不可能的...

XMLHttpRequest 就是您所需要的。这是与服务器通信的本机方式。

此外,感谢@charlietfl,更现代的方法是使用 fetch,但它在 IE 中不受支持。

正如已经指出的那样,您可以尝试 fetch 但同时以下代码示例也可能对您有用。只需使用正确的参数调用 ajaxPOST(postParams, url)

//This function creates cross-browser XMLHttp object
function createXMLHttp(){
    if (typeof XMLHttpRequest != "undefined") { 
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {  
        var aVersions = [   "MSXML2.XMLHttp.9.0",
                            "MSXML2.XMLHttp.8.0",
                            "MSXML2.XMLHttp.7.0",
                            "MSXML2.XMLHttp.6.0",
                            "MSXML2.XMLHttp.5.0",
                            "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
                            "MSXML2.XMLHttp","Microsoft.XMLHttp"
                        ];
        for (var i = 0; i < aVersions.length; i++) {
            try {
                var oXmlHttp = new ActiveXObject(aVersions[i]);
                return oXmlHttp;
            } catch (oError) {
                //Do nothing
            }
        }
    }   
    //if it reaches here, this cannot be created
    throw new Error("XMLHttp object could be created.");    
}

//this does Ajax POST
//sample params: var postParams = "key1="+value1+"&key2="+value2+"&keyx="+valuex; 
function ajaxPOST(postParams, url){
    var retString = false;
    //creating xbrowser xmlhttp object; you handle any failures here
    var http = createXMLHttp(); 
    //setting headers
    http.open("POST", url, true);
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    //call-back handler
    http.onreadystatechange = function() {      
        if(http.readyState == 4) {
            if(http.status == 200) {
                //this went fine 
            }
            //read results now, you may trim it for extra spaces
            retString = http.responseText;
            //alert("retString: "+ retString); 
        }
        return retString;       
    }
    //send the request
    http.send(postParams);
}