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

【原因】

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

原文地址:https://www.cnblogs.com/lnsylt/p/10354425.html

时间: 2024-10-02 19:00:48

【JavaScript】EasyUIのForm的跨域提交问题解析的相关文章

Extjs的form跨域提交文件时,无法获取返回结果

form文件表单跨域提交时,无法获取远程服务器的返回结果,form提交代码如下: form.submit({ url:'http://{remoteUrl}/hgisserver/wrds/file', waitMsg: 'Reading your file...', method : 'POST', success: function(fp, o) { console.log(o); }, failure: function(form, action) { console.log(action

妥善的ajax跨域提交post请求的解决方案,结合PHP与jquery

开发背景: 在开发中采用了一个新的架构,将大部分客户的留言功能集成到一个公共API提交保存,采用不同的用户名区分,供客户查询自己网站的留言,这样节约了客户网站的资源,也提升了维护性. 那么在提交时不能采用直接的post提交,否则会产生跳转,使访客混乱,所以采用ajax提交留言内容至公共服务器:http://wx.igooda.cn/index.php/messagesave,但尝试后发现不能提交post请求,百度后查询结果是跨域只能是get请求,这对留言内容多的来说,是不可行的.还有一种解决方案

跨域提交

本文实现常用的跨域提交,并非ajax提交: 一.HTML表单: <form id="fm" name="FM" action="server.aspx" method="post" target="ajaxiframe"> <input type="text" name="tit" value="标题" /> <inp

使用jQuery实现跨域提交表单数据

我们在WEB开发中有时会遇到这种情况,比如要从A网站收集用户信息,提交给B网站处理,这个时候就会涉及到跨域提交数据的问题.本文将给您介绍如何使用jQuery来实现异步跨域提交表单数据. 在jQuery中,我们使用json数据类型,通过getJSON方法来实现从服务端获取或发送数据,而当要向不同远程服务器端提交或者获取数据时,要采用jsonp数据类型.使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面.服务器端应当在JSON数据前加上回调函数名,以便

代替jquery $.post 跨域提交数据的N种形式

跨域的N种形式: 1.直接用jquery中$.getJSON进行跨域提交 优点:有返回值,可直接跨域: 缺点:数据量小: 提交方式:仅get (无$.postJSON) $.getJSON("http://www.sendnet.cn/?callback=?" , { UserId: 1001 }, function (data) { alert(data.info); }); $.ajax({ type: "Get", url: "http://www.

ServiceStack支持跨域提交

//ServiceStack对浏览器有一定的限制 //修改AppHost.cs文件 using Funq;using ServiceStack;using ServiceStackTest.ServiceInterface; namespace ServiceStackTest{ public class AppHost : AppHostBase { /// <summary> /// Default constructor. /// Base constructor requires a

jquery Ajax 通过jsonp的方式跨域提交表单

Jquery Ajax可以通过jsonp的方式跨域提交表单,至于什么是跨域提交简单说就是你的客户端和服务端不在同一个域名下或端口号不同也可以叫做跨域. 前台代码: $.ajax({ type : 'get', async: false, url : '${pageContext.request.contextPath}/clue/uploadForm', dataType : 'jsonp', data: { mydata : JSON.stringify(obj,fm), formId : f

[jQuery]$.get跨域提交不发送原因

使用 $.ajax({ url: "http://pastebin.com/embed_js.php?i=sy9gt3FR", dataType: "jsonp", success: function (data) { // ... } }); [jQuery]$.get跨域提交不发送原因,布布扣,bubuko.com

C#使用jsonp进行跨域提交表单

跨域提交留言,并返回是否成功! C#服务端: public void FeedBackPost(string name, string email, string tel, string website, string desc, string thisIp, string sourse, string callBack) { try { Response.ContentType = "application/x-javascript"; string str = callBack;