大家好我对Extjs完全陌生,已经被插入到一个已经开始并且独自待在的大型项目中。
我当然在研究框架,但是我被每一段代码所打动。

现在,我想了解使用POST中的JSON参数进行调用的正确方法。

这是我的实际情况:

我在视图文件(称为setup.js)中定义了一个组合框,并在侦听器上设置了如下所示的侦听器

emptyText: 'Select a country',
                listConfig: {
                    itemTpl: [
                        '<div><span class="" style="margin-right: 10px;"><img src="resources/flags/{id}.png"></span>{name}</div>'
                    ]
                },
                listeners: {
                    /*created the after render listener to wait until the store is loaded. then I set the default value*/
                    select: 'onCountrySelect',
                    afterrender: 'onAfterRenderCombo'
                }


在另一个名为setupController.js的文件中,我定义了所有函数:

onCountrySelect: function(a){
        console.log("selected ",a.value);
        var controller = this,
        userData = controller.getUserData();
        console.log("user.id",userData.id);
    },


现在,在每个国家/地区选择操作中,我都必须向服务器发送JSON,以“设置”用户使用的国家/地区。该调用还取决于环境,因为开发人员与生产人员不同,因此我想我必须进行某种代理,但这也许是以后的问题,现在我想为此设置一个调用选择,因此我将在以后要做的所有调用中使用此逻辑。

问题是,是否有定义它的正确方法?我需要模特吗?还是在商店里打个电话是好事?我是否需要... proxy(?)或商店或“外部”物品,以便可以在其他地方使用相同的调用?有这个例子吗?

伙计们,谢谢。

最佳答案

就像写在这里http://docs.sencha.com/extjs/6.0.2/classic/Ext.data.proxy.Ajax.html

使代理可以与相同域上的服务器一起使用:


  AjaxProxy不能用于从其他域检索数据。如果您的应用程序在http://domainA.com上运行,则无法从http://domainB.com加载数据,因为浏览器具有内置的安全策略,该策略禁止域通过AJAX相互通信。


我个人有一个与多个服务器连接的控制台,所以我使用了像这样的aaax请求:http://docs.sencha.com/extjs/6.0.2/modern/Ext.Ajax.html#method-request

Ext.Ajax.request({
        url:'',
        method:'POST',
        params:{
            json:YOURJSON
        },
        success:function(response){

        },
        failure:function(response){

        }
    });


我正在开发一个由ajax代理扩展的个人代理,以进行ajax调用而不会出现其他域问题。如果您想做一个家庭代理,您可以在这里阅读有关代理的所有信息:http://docs.sencha.com/extjs/6.0.2/classic/Ext.data.proxy.Proxy.html

或者您可以使用外部JS类为您执行ajax请求。

关于javascript - Extjs 5.0.1如何以正确的方式发送JSON POST请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40258674/

10-12 00:06
查看更多