前後端分離(三)
3176 ワード
一、前後端分離についてGETとPOSTを用いてJSON文字列を伝送する問題
1、GET伝送
GET方式でJSON文字列を伝送することはURLの中で中国語を伝送することに相当するので、伝送するJSONを符号化と復号化する必要がある.具体的な過程は以下の通りである.
フロントエンドでencodeURL()を使用してJSON文字列を2回エンコードしていることがわかります
バックグラウンドでSystemを使用することがわかる.Web.HttpUtility.UrlDecode()は復号化された
2.POST伝送
POSTで転送するときに送信するデータをsend(s)で転送する
フロントエンドでコードを使わないことがわかります
バックグラウンドでは、ストリームを介してデータを受信することができます.
二、前後端分離についてJSONに関する知識
{「province」:「広東」、「city」:「深セン」}
オブジェクトにはprovince、広東値、city値、深セン値の2つのプロパティがあります.
1、一般オブジェクト
JSON形式では、1つのオブジェクトを「{」で始まり、「}」で終わるように規定されています.オブジェクトの内部はそのオブジェクトの各要素で、各要素は「名前:値」のペアで、各「名前」の後に「:」が付いています.名前は二重引用符で、値が文字列であれば二重引用符で囲まれます.オブジェクトに複数の要素がある場合、
1、GET伝送
GET方式でJSON文字列を伝送することはURLの中で中国語を伝送することに相当するので、伝送するJSONを符号化と復号化する必要がある.具体的な過程は以下の通りである.
//
var obj = new Object();
obj.province = document.getElementById("province").value;
obj.city = document.getElementById("city").value;
var s = JSON.stringify(obj);
//s = "&s="+s;
s = encodeURI(s);
s = encodeURI(s); //
フロントエンドでencodeURL()を使用してJSON文字列を2回エンコードしていることがわかります
String s=context.Request.QueryString["s"];
//
s = System.Web.HttpUtility.UrlDecode(s);
// json
JObject jObject = JObject.Parse(s);
// province
String p = (string)jObject["province"];
// city
String c = (string)jObject["city"];
バックグラウンドでSystemを使用することがわかる.Web.HttpUtility.UrlDecode()は復号化された
2.POST伝送
POSTで転送するときに送信するデータをsend(s)で転送する
var s = JSON.stringify(obj);
//s = "&s="+s;
//s = encodeURI(s);
//s = encodeURI(s); //
//
//http.open("GET", "server.ashx?&s=" + s + "&rnd=" + Math.random().toString(), true);
http.open("POST", "server.ashx?&rnd=" + Math.random().toString(), true);
//
http.setRequestHeader("content-Type", "application/json");
//http.send(null);
http.send(s);
フロントエンドでコードを使わないことがわかります
// s
//String s=context.Request.QueryString["s"];
context.Response.ContentType = "application/json";
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
String s;
using (var reader = new System.IO.StreamReader(context.Request.InputStream))
{
s = reader.ReadToEnd();
if (!string.IsNullOrEmpty(s))
{
//
}
}
//s = System.Web.HttpUtility.UrlDecode(s);
// json
//JObject jObject = (JObject)JsonConvert.DeserializeObject(s);
//JArray jar = JArray.Parse(jObject["RTDataSets"].ToString());
JObject jObject = JObject.Parse(s);
// province
String p = (string)jObject["province"];
// city
String c = (string)jObject["city"];
バックグラウンドでは、ストリームを介してデータを受信することができます.
二、前後端分離についてJSONに関する知識
{「province」:「広東」、「city」:「深セン」}
オブジェクトにはprovince、広東値、city値、深セン値の2つのプロパティがあります.
1、一般オブジェクト
JSON形式では、1つのオブジェクトを「{」で始まり、「}」で終わるように規定されています.オブジェクトの内部はそのオブジェクトの各要素で、各要素は「名前:値」のペアで、各「名前」の後に「:」が付いています.名前は二重引用符で、値が文字列であれば二重引用符で囲まれます.オブジェクトに複数の要素がある場合、