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

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

【問題】

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"
        });
    }
View Code

【原因】

請求の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の請求を利用したほうがいい。

猜你喜欢

转载自www.cnblogs.com/lnsylt/p/10354425.html