原生js的ajax请求

原生js的ajax数据请求

注:原生的ajax请求.在发送post请求的时候,

请求的Content-Type为text/plain;charset=UTF-8,而请求参数在Request Payload中。

如果是使用jq发送post请求,参数在Form Data

这里要注意post请求的Content-Type为application/x-www-form-urlencoded,参数是在请求体中,即上面请求中的Form Data。

最后查阅文档才知道,   

HTTP POST表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;charset=UTF-8。

也就是解决这个问题就是要求设置请求头

//手机号绑定
function apply(){

var XHR=null;  
if (window.XMLHttpRequest) {  
   // 非IE内核  
   XHR = new XMLHttpRequest();  
} else if (window.ActiveXObject) {  
   // IE内核,这里早期IE的版本写法不同,具体可以查询下  
   XHR = new ActiveXObject("Microsoft.XMLHTTP");  
} else {  
   XHR = null;  
}  
 
if(XHR){  

var code = document.getElementById("numcode").value
var mobile=document.getElementById("num").value
var postdata="mobile="+mobile+"&code="+code


   XHR.open("POST", "/ajax/json/live/dosignup");  
XHR.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
   
   XHR.onreadystatechange = function () {  
       if (XHR.readyState == 4 && XHR.status == 200) {  
           var mydata =JSON.parse(XHR.responseText); 
           console.log(mydata)
           if(mydata.code){
            document.getElementById("codeerr").style.display='block'
            document.getElementById("msgcode").innerText=mydata.msg
           }else{
            $('.zao').css('display','none')
location.reload()
           }
           
           XHR = null;  
       }  
   };  

   XHR.send(postdata);  
}  



}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值