美好的一天。我是Extjs的新手,我已经被插入一个已经开始并且独自留下的大项目中。 我当然正在研究框架,但是我对每一段代码都感到震惊。
现在,我想了解在POST中使用JSON参数进行休息调用的正确方法。
这是我的实际情况:
我在视图文件中定义了一个组合框(名为setup.js),我将一个监听器放在select上,如下所示
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,以“设置”用户使用的国家/地区。调用还取决于环境,因为开发者与生产环境不同,所以我想我必须做出某种代理,但也许这是后来的问题,现在我想设置一个调用这个选择,所以我将把这个逻辑用于我将来要做的所有调用。
问题是,有没有正确的方法来定义它?我需要一个型号吗?或者在商店里打电话好吗?我需要一个...代理(?)或商店或“外部”的东西,所以我可以在其他地方使用相同的电话?这是一个例子吗?
男/女,提前谢谢。
答案 0 :(得分:0)
喜欢这里写的http://docs.sencha.com/extjs/6.0.2/classic/Ext.data.proxy.Ajax.html
使代理与同一域上的服务器一起使用:
AjaxProxy不能用于从其他域检索数据。如果您的应用程序在http://domainA.com上运行,则无法从http://domainB.com加载数据,因为浏览器具有内置安全策略,禁止域通过AJAX相互通信。
个人让控制台与多个服务器连接,我使用像http://docs.sencha.com/extjs/6.0.2/modern/Ext.Ajax.html#method-request这样的ajax请求
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
或者只是您可以使用为您执行ajax请求的外部JS类。