原生javascript发送ajax请求
前段时间发现自己对javascript基础知识掌握不到位,对于原生的js发送请求不是十分了解,便去学习了以下。
开发背景
最近在开发一个展示数据图表的网站,由于网站没有太多的DOM操作,于是并没有使用jQuery库;在网站开发过程中,需要进行数据请求,然而在使用js进行数据请求时,发生了一些错误——由于未将发送的数据进行编码,所以导致服务器接收错误。
解决方案
正确的请求方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| function sendData() { var args = Array.prototype.slice.call(arguments); var urlEncodedData = ''; for (name in args[1]) { urlEncodedData += name + '=' + encodeURIComponent(args[1][name]) + '&'; } urlEncodedData = String.prototype.slice.call(urlEncodedData,0,-1); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { ret = xmlhttp.responseText; console.log(ret); } }; xmlhttp.open('POST', args[0]); xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp.send(urlEncodedData); }
|
更多详细的使用JavaScript发送数据的方式请访问此处
文章来源:https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/Forms/Sending_forms_through_JavaScript