Skip to content

Commit e76770e

Browse files
committed
新增JavaScript版
1 parent 71d0978 commit e76770e

File tree

17 files changed

+975
-0
lines changed

17 files changed

+975
-0
lines changed

APIJSON-JavaScript/.idea/Demo.iml

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

APIJSON-JavaScript/.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

APIJSON-JavaScript/.idea/workspace.xml

Lines changed: 322 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>Access Error</title>
5+
<script type="text/javascript" src="apijson.js">
6+
</script>
7+
</head>
8+
<body>
9+
<script >
10+
var json = {
11+
"tag":"Wallet",
12+
"Wallet":{
13+
"userId":38710
14+
}
15+
};
16+
17+
request(url_post_get, json);
18+
</script>
19+
</body>
20+
</html>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>Access Permitted</title>
5+
<script type="text/javascript" src="apijson.js">
6+
</script>
7+
</head>
8+
<body>
9+
<script >
10+
var json = {
11+
"tag":"Wallet",
12+
"Wallet":{
13+
"userId":38710
14+
},
15+
"currentUserId":38710,
16+
"loginPassword":"apijson"
17+
};
18+
19+
request(url_post_get, json);
20+
</script>
21+
</body>
22+
</html>

APIJSON-JavaScript/apijson.js

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
/**
2+
* Created by Lemon on 17/5/8.
3+
*/
4+
5+
var url_base = "http://139.196.140.118:8080";
6+
var url_get = url_base + "/get";
7+
var url_head = url_base + "/head";
8+
var url_post_get = url_base + "/post_get";
9+
var url_post_head = url_base + "/post_head";
10+
var url_post = url_base + "/post";
11+
var url_put = url_base + "/put";
12+
var url_delete = url_base + "/delete";
13+
14+
15+
/**包含
16+
* @param obj
17+
* @returns {boolean}
18+
*/
19+
Array.prototype.contains = function (obj) {
20+
for (var i = 0; i < this.length; i ++) {
21+
if (this[i] === obj) {
22+
return true;
23+
}
24+
}
25+
return false;
26+
}
27+
28+
/**请求方法
29+
* @type {Array}
30+
*/
31+
var Method = new Array(
32+
33+
/**
34+
* 常规获取数据方式
35+
*/
36+
"get",
37+
38+
/**
39+
* 检查,默认是非空检查,返回数据总数
40+
*/
41+
"head",
42+
43+
/**
44+
* 通过POST来GET数据,不显示请求内容和返回结果,一般用于对安全要求比较高的请求
45+
*/
46+
"post_get",
47+
48+
/**
49+
* 通过POST来HEAD数据,不显示请求内容和返回结果,一般用于对安全要求比较高的请求
50+
*/
51+
"post_head",
52+
53+
/**
54+
* 新增(或者说插入)数据
55+
*/
56+
"post",
57+
58+
/**
59+
* 修改数据,只修改传入字段对应的值
60+
*/
61+
"put",
62+
63+
/**
64+
* 删除数据
65+
*/
66+
"delete"
67+
)
68+
69+
70+
71+
/**请求
72+
* @param url
73+
* @param rq
74+
*/
75+
function request(url, json, notAlertRequest, onreadystatechange) {
76+
var rqf = format(JSON.stringify(json));
77+
78+
var rq = encodeURI(JSON.stringify(encode(json))); // JSON.stringify(encode(json)); //
79+
80+
81+
var method = url.substring(url.lastIndexOf("/") + 1, url.length);
82+
// alert("method=" + method);
83+
if (method == null || Method.contains(method) == false) {
84+
alert("method is empty! url must endsWith \"/[method]\" !");
85+
return;
86+
}
87+
var isGet = method === Method[0] || method === Method[1];
88+
// alert("isGet=" + isGet);
89+
90+
var METHOD = method.toUpperCase();
91+
92+
if (! notAlertRequest) {
93+
alert("Request(" + METHOD + "):\n" + rqf);
94+
}
95+
96+
97+
//原生请求<<<<<<<<<<<<<<<<<<<<<<<<<<
98+
var request = new XMLHttpRequest();
99+
request.open(isGet ? "GET" : "POST", url + (isGet ? "/" + rq : ""), true);
100+
if (isGet == false) {
101+
request.setRequestHeader("Content-type", "application/json");
102+
}
103+
request.onreadystatechange = onreadystatechange != null ? onreadystatechange : function () {
104+
if (request.readyState !== 4) {
105+
return;
106+
}
107+
108+
if (request.status === 200) {
109+
alert("Response(" + METHOD + "):\n" + format(request.responseText));
110+
} else {
111+
alert("Response(" + METHOD + "):\nstatus" + request.status + "\nerror:" + request.error);
112+
}
113+
}
114+
115+
request.send(isGet ? null : rq);
116+
//原生请求>>>>>>>>>>>>>>>>>>>>>>>>>>
117+
118+
119+
//JQuery ajax请求<<<<<<<<<<<<<<<<<<<<<<<<<<
120+
// $.ajax({
121+
// type: isGet ? "GET" : "POST",
122+
// url: isGet ? url + "/" + rq : url,
123+
// contentType: "application/json", //必须
124+
// dataType: "json", //返回值类型,非必须
125+
// data: isGet ? null : rq,
126+
// success: function (response) {
127+
// alert(response);
128+
// }
129+
// });
130+
//JQuery ajax请求>>>>>>>>>>>>>>>>>>>>>>>>>>
131+
132+
133+
//VUE axios请求<<<<<<<<<<<<<<<<<<<<<<<<<<
134+
// if (isGet) {
135+
// axios.get(url + "/" + rq, null)
136+
// .then(function (response) {
137+
// console.log(response);
138+
// })
139+
// .catch(function (error) {
140+
// console.log(error);
141+
// });
142+
// } else {
143+
// axios({
144+
// method: 'post',
145+
// url: url + "/",
146+
// data: json
147+
// }).then(function (response) {
148+
// alert(response);
149+
// }).catch(function (error) {
150+
// alert(error);
151+
// });
152+
// }
153+
//VUE axios请求>>>>>>>>>>>>>>>>>>>>>>>>>>
154+
155+
156+
return request;
157+
}
158+
159+
/**编码JSON,转义所有String
160+
* @param json
161+
*/
162+
function encode(json) {
163+
// alert("encode before:\n" + format(JSON.stringify(json)));
164+
165+
if (typeof json == "string") { //json instanceof String) {
166+
json = encodeURIComponent(json);
167+
}
168+
else if (json instanceof Array) {
169+
// alert("encode json instanceof Array");
170+
171+
for (var i = 0; i < json.length; i ++) {
172+
// alert("json[" + i + "] = " + format(JSON.stringify(json[i])));
173+
json[i] = encode(json[i]);
174+
}
175+
}
176+
else if (json instanceof Object) {
177+
// alert("encode json instanceof Object");
178+
for (var key in json) {
179+
// alert("encode json[" + key + "] = " + format(JSON.stringify(json[key])));
180+
json[key] = encode(json[key]);
181+
}
182+
}
183+
// alert("encode after:\n" + format(JSON.stringify(json)));
184+
185+
return json;
186+
}
187+
188+
189+
/**格式化JSON串
190+
* @param json
191+
*/
192+
function format(json) {
193+
return JSON.stringify(JSON.parse(json), null, "\t");
194+
}

APIJSON-JavaScript/delete.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>DELETE</title>
5+
<script type="text/javascript" src="apijson.js">
6+
</script>
7+
</head>
8+
<body>
9+
<script >
10+
var json = {
11+
"tag":"Moment",
12+
"Moment":{
13+
"id":10000
14+
}
15+
};
16+
17+
request(url_delete, json);
18+
</script>
19+
</body>
20+
</html>

APIJSON-JavaScript/get/.idea/GET.iml

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

APIJSON-JavaScript/get/.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)