JavaScriptEasyUIのForm的跨域提交问题解析

Posted lnsylt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScriptEasyUIの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の請求を利用したほうがいい。

 

以上是关于JavaScriptEasyUIのForm的跨域提交问题解析的主要内容,如果未能解决你的问题,请参考以下文章

Ajax的跨域问题

跨域相关配置

iframe无刷新跨域并获得返回值

如何“合法”的跨域访问?

JavaScript中的跨域

AJAX的跨域与JSONP