大家好我对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/