目的: 1>說明主機端傳回 string vs Http.StringContent vs HttpResponseMessage 的不同(主機端)
2>說明主機端傳回 string vs Http.StringContent vs HttpResponseMessage , 在前端接收的結果
摘要:
1>string : 單純的資料型態 , 傳回至前端會含 字串引號(" ")
2>StringContent 為 Object 含Header,content , 真正的內容存在 content(以 byte 方式儲存)
2>StringContent 為 Object 含Header,content , 真正的內容存在 content(以 byte 方式儲存)
3>HttpStringMessage: 傳回至前端, response.responseText 不會含字串引號
1> *.cs c# 主機端 *Controller:
1>>String Tmp_RtnStr; //一般的字串
2>>StringContent Tmp_StringContent ; // HTTP 的字串內容, 含 Header
1) HTTP 的字串內容, 含 Header (說明 charset) ,
2) 真正的內容存在 [content] 屬性
2> *.js JavaScript 前端 , 接收主機端(String及 Http.StringContent)的傳回結果
Case1: 接收主機傳回 string
1>>string : 主機端傳回 string
*.cs
[HttpPost]
public String get_PRNLIST()
{
String Tmp_RtnStr;
Tmp_RtnStr = "{Key:" + myfunc.AA("ABC") + "}";
return Tmp_RtnStr
}
2>>前端接收 [主機端傳回 string]:
var np = {};
np["CLS"] = Tmp_CLS;
np["DITM"] = Tmp_DITM;
var isOk = true;
Ext.Ajax.request({
method: "POST",
url: '../../api/V120103API/CHECK_CLS_DITM',
params: np,
async: false,
success: function (response, opts) {
console.log("0 response.responseText=", response.responseText);
var Tmp_Obj = Ext.decode(response.responseText);
console.log("1 Tmp_Obj=", Tmp_Obj);
if (Tmp_Obj["success"] == false) {
var Tmp_Rtn_Msg = "類別(" + Tmp_CLS + ")排序項次(" + Tmp_DITM + ")已存在拆挪管制標準檔(AMM_FRO3F16STD)<br>"
+ "請檢核<br>"
+ Tmp_Obj["Rtn_Msg"];
mywarnalert(Tmp_Rtn_Msg);
isOk = false;
}
}, //end of success
failure: function (response, opts) {
var Tmp_Obj = Ext.decode(response.responseText);
var Tmp_Rtn_Msg = "類別(" + Tmp_CLS + ")排序項次(" + Tmp_DITM + ")已存在拆挪管制標準檔(AMM_FRO3F16STD)<br>"
+ "請檢核<br>"
+ Tmp_Obj["Rtn_Msg"];
mywarnalert(Tmp_Rtn_Msg);
isOk = false;
}
}) //end of Ext.Ajax.Request
return isOk;
} // end of CheckFormValue
1>>string : 主機端傳回 StringContent *.cs
[HttpPost]
public StringContent get_PRNLIST()
{
String Tmp_RtnStr;
Tmp_RtnStr = "{Key:" + myfunc.AA("ABC") + "}";
StringContent Tmp_StringContent;
Tmp_StringContent = new StringContent(Tmp_RtnStr);
return Tmp_StringContent;
}
2>>前端接收 [主機端傳回 StringContent]: *.js
console.log("0 response=", response);
var Tmp_ObjAryStr1 = response.responseText;
console.log("1 response.responseText=", response.responseText);
var Tmp_Obj_decode1 = Ext.decode(response.responseText);
console.log("1 Ext.decode(response.responseText)=", Tmp_Obj_decode1);
var Tmp_Obj_decode1_1 = Ext.decode(Tmp_Obj_decode1);
console.log("1 Ext.decode_2(response.responseText)=", Tmp_Obj_decode1_1);
Case3: 接收主機傳回 HttpResponseMessage
1>>HttpResponseMessage: 主機端傳回 HttpResponseMessage
public HttpResponseMessage get_PRNLIST()
{
Tmp_RtnStr = "{Key:" + myfunc.AA("ABC") + "}";
var response = this.Request.CreateResponse();
response.Content = new StringContent(Tmp_RtnStr); // 回應內容
return response;
}
console.log("1 response.responseText=", response.responseText);
var Tmp_Obj_decode1 = Ext.decode(response.responseText);
console.log("1 Ext.decode(response.responseText)=", Tmp_Obj_decode1);
var Tmp_Obj_decode1_1 = Ext.decode(Tmp_Obj_decode1);
console.log("1 Ext.decode_2(response.responseText)=", Tmp_Obj_decode1_1);
沒有留言:
張貼留言