/** * Created by Lemon on 17/5/8. */ var url_base = "http://139.196.140.118:8080"; var url_get = url_base + "/get"; var url_head = url_base + "/head"; var url_post_get = url_base + "/post_get"; var url_post_head = url_base + "/post_head"; var url_post = url_base + "/post"; var url_put = url_base + "/put"; var url_delete = url_base + "/delete"; /**å å« * @param obj * @returns {boolean} */ Array.prototype.contains = function (obj) { for (var i = 0; i < this.length; i ++) { if (this[i] === obj) { return true; } } return false; } /**è¯·æ±æ¹æ³ * @type {Array} */ var Method = new Array( /** * 常è§è·åæ°æ®æ¹å¼ */ "get", /** * æ£æ¥ï¼é»è®¤æ¯éç©ºæ£æ¥ï¼è¿åæ°æ®æ»æ° */ "head", /** * éè¿POSTæ¥GETæ°æ®ï¼ä¸æ¾ç¤ºè¯·æ±å 容åè¿åç»æï¼ä¸è¬ç¨äºå¯¹å®å ¨è¦æ±æ¯è¾é«çè¯·æ± */ "post_get", /** * éè¿POSTæ¥HEADæ°æ®ï¼ä¸æ¾ç¤ºè¯·æ±å 容åè¿åç»æï¼ä¸è¬ç¨äºå¯¹å®å ¨è¦æ±æ¯è¾é«çè¯·æ± */ "post_head", /** * æ°å¢(æè 说æå ¥)æ°æ® */ "post", /** * ä¿®æ¹æ°æ®ï¼åªä¿®æ¹ä¼ å ¥åæ®µå¯¹åºçå¼ */ "put", /** * å 餿°æ® */ "delete" ) /**è¯·æ± * @param url * @param rq */ function request(url, json, notAlertRequest, onreadystatechange) { var rqf = format(JSON.stringify(json)); var rq = encodeURI(JSON.stringify(encode(json))); // JSON.stringify(encode(json)); // var method = url.substring(url.lastIndexOf("/") + 1, url.length); // alert("method=" + method); if (method == null || Method.contains(method) == false) { alert("method is empty! url must endsWith \"/[method]\" !"); return; } var isGet = method === Method[0] || method === Method[1]; // alert("isGet=" + isGet); var METHOD = method.toUpperCase(); if (! notAlertRequest) { alert("Request(" + METHOD + "):\n" + rqf); } //åç请æ±<<<<<<<<<<<<<<<<<<<<<<<<<< var request = new XMLHttpRequest(); request.open(isGet ? "GET" : "POST", url + (isGet ? "/" + rq : ""), true); if (isGet == false) { request.setRequestHeader("Content-type", "application/json"); } request.onreadystatechange = onreadystatechange != null ? onreadystatechange : function () { if (request.readyState !== 4) { return; } if (request.status === 200) { alert("Response(" + METHOD + "):\n" + format(request.responseText)); } else { alert("Response(" + METHOD + "):\nstatus" + request.status + "\nerror:" + request.error); } } request.send(isGet ? null : rq); //åç请æ±>>>>>>>>>>>>>>>>>>>>>>>>>> //JQuery ajax请æ±<<<<<<<<<<<<<<<<<<<<<<<<<< // $.ajax({ // type: isGet ? "GET" : "POST", // url: isGet ? url + "/" + rq : url, // contentType: "application/json", //å¿ é¡» // dataType: "json", //è¿åå¼ç±»åï¼éå¿ é¡» // data: isGet ? null : rq, // success: function (response) { // alert(response); // } // }); //JQuery ajax请æ±>>>>>>>>>>>>>>>>>>>>>>>>>> //VUE axios请æ±<<<<<<<<<<<<<<<<<<<<<<<<<< // if (isGet) { // axios.get(url + "/" + rq, null) // .then(function (response) { // console.log(response); // }) // .catch(function (error) { // console.log(error); // }); // } else { // axios({ // method: 'post', // url: url + "/", // data: json // }).then(function (response) { // alert(response); // }).catch(function (error) { // alert(error); // }); // } //VUE axios请æ±>>>>>>>>>>>>>>>>>>>>>>>>>> return request; } /**ç¼ç JSONï¼è½¬ä¹ææString * @param json */ function encode(json) { // alert("encode before:\n" + format(JSON.stringify(json))); if (typeof json == "string") { //json instanceof String) { json = encodeURIComponent(json); } else if (json instanceof Array) { // alert("encode json instanceof Array"); for (var i = 0; i < json.length; i ++) { // alert("json[" + i + "] = " + format(JSON.stringify(json[i]))); json[i] = encode(json[i]); } } else if (json instanceof Object) { // alert("encode json instanceof Object"); for (var key in json) { // alert("encode json[" + key + "] = " + format(JSON.stringify(json[key]))); json[key] = encode(json[key]); } } // alert("encode after:\n" + format(JSON.stringify(json))); return json; } /**æ ¼å¼åJSON串 * @param json */ function format(json) { return JSON.stringify(JSON.parse(json), null, "\t"); }