【JavaScript】EasyUIのForm的跨域提交问题解析

时间:2022-04-20 21:18:24

昨日、プログラムを作るとき、一つの問題がありますが、皆に共有します。

【問題】

EasyUIのFormでURLを請求するとき、返却の値が取得できない。

【ソース】

var fnRegUser = function (thisPage) {
var frm = thisPage.find('#id_regfrm');
var url = CommonJs.cxtPath() + '/user/regedit.do';
if (frm.form('validate')) {
frm.form({
url : url,
onSubmit : function () {
},
success : function (data) {
console.info('data', data);
var obj = {
'key1' : 'valA',
'key2' : 'valB',
'key3' : 'valC'
};
sessionStorage.setItem("keyobj", JSON.stringify(obj));
}
});
frm.submit();
} else {
$.messager.show({
title : "ERROR",
msg : "ERRRRRRRRRRRRR",
timeout : 1000,
showType : "slide"
});
}

【原因】

請求のURLは通常URL「/user/regedit.do」ではなく、「http://localhost:8080/SSM/user/regedit.do」となります。

①通常URL「/user/regedit.do」を請求するとき、本システムの中身に請求する

②全パス「http://localhost:8080/SSM/user/regedit.do」を請求するとき、新システムらしいの中身に請求する。

【分析】

EasyUIのFormのSubmit請求は通常URLを利用するだけで、返却値が取得できるが、Ajaxに対して、請求URLと関係ない、返却値を取得できる。

ただ、EasyUIのFormのLoad請求に対して、通常URLでも全パスでも、返却値を取得できます。

【結論】

システム間を通信するため、全パスの請求を利用するが、本システムの中身を通信するため、通常URLの請求を利用したほうがいい。