怎么用javascript发送post请求

JavaScript021

怎么用javascript发送post请求,第1张

//原生js实现Ajax

function ajax() {

var ajaxData = {

type: arguments[0].type || "GET",//提交方式,默认get

url: arguments[0].url || "",//路径

async: arguments[0].async || "true",//是否异步,默认异步

data: arguments[0].data || null,//参数

dataType: arguments[0].dataType || "text",//类型

contentType: arguments[0].contentType || "application/x-www-form-urlencoded",

beforeSend: arguments[0].beforeSend || function() {},

success: arguments[0].success || function() {},

error: arguments[0].error || function() {}

}

ajaxData.beforeSend()//默认执行before方法

var xhr = createxmlHttpRequest()//创建request对象

xhr.responseType = ajaxData.dataType

xhr.open(ajaxData.type, ajaxData.url, ajaxData.async)

xhr.setRequestHeader("Content-Type", ajaxData.contentType)

xhr.send(convertData(ajaxData.data))

xhr.onreadystatechange = function() {

if(xhr.readyState == 4) {

if(xhr.status == 200) {

ajaxData.success(xhr.response)

} else {

ajaxData.error()

}

}

}

}

function createxmlHttpRequest() {

if(window.ActiveXObject) {//判断IE

return new ActiveXObject("Microsoft.XMLHTTP")

} else if(window.XMLHttpRequest) {

return new XMLHttpRequest()

}

}

function convertData(data) {

if(typeof data === 'object') {

var convertResult = ""

for(var c in data) {

convertResult += c + "=" + data[c] + "&"

}

convertResult = convertResult.substring(0, convertResult.length - 1)

return convertResult

} else {

return data

}

}

var json = ajax({

url: "http://192.168.10.22:8080/xxx",

dataType: "json",

success: function(msg) {

var date=msg

if(date.stateCode=200){

var result=date.dataList

}

}

},

error: function() {

console.log("error")

}

})

以上是原生js实现,也可以引入jquery 使用$.post()

document.querySelector("#btnAjax").onclick = function () {

        var ajax = new XMLHttpRequest()

        // 使用post请求

        ajax.open('post','ajax_post.php')

        // 如果 使用post发送数据 必须 设置 如下内容

        // 修改了 发送给 服务器的 请求报文的 内容

        // 如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:

        ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded")

        // 发送

        // post请求 发送的数据 写在 send方法中

        // 格式 name=jack&age=18 字符串的格式

        ajax.send('name=jack&age=998')

        // 注册事件

        ajax.onreadystatechange = function () {

            if (ajax.readyState==4&&ajax.status==200) {

                console.log(ajax.responseText)

            }

        }

    }

有时候,为了隐藏页面之间传递的参数,不会用直接路由加参数的形式去跳转,而是利用post方法,

我们都知道post方法传递参数时,参数并不现实在url里面

post传参并跳转