据我所知,当我提交表单时,根据the documentation默认情况下,ExtJs将响应解析为JSON。
在我的情况下,服务器返回HTML,我想在Panel中显示。当我使用getForm().submit()
提交from时,ExtJs将抛出有关无效JSON的错误:
Ext.JSON.decode(): You're trying to decode an invalid JSON String
如何告诉ExtJs不要尝试解析响应?我可以使用response object访问文本。
答案 0 :(得分:2)
我不知道您是否正在寻找严格的ExtJS框架解决方案。但是,您似乎可以直接使用xmlhttprequest来解决您的问题,因为您希望将html
直接推送到dom
?
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET','/myPath/here',false);
xmlhttp.send();
var html = xmlhttp.responseText;
//assign value
答案 1 :(得分:0)
在Ext.form.Basic
配置中,您可以定义自己的reader和errorReader
答案 2 :(得分:0)
最后,我不可能去工作form.submit()
的ExtJs。我需要使用Ext
进行实施。由于这是我的应用程序中的常见模式,因此有一个简短的解决方案很重要。
这是我最终找到的(我有一个包含表格的模态窗口):
var values = me.up('form').getValues(),
panel = Ext.create('My.view.MyPanel', {
xtype: 'panel',
loader: {
url: Paths.ajax + 'sav_vpc/douane.php',
method: 'get',
params: values,
autoLoad: true
}
});
me.up('window').close()
此解决方案比me.up('form').getForm().submit()
解决方案具有另一个优势:
虽然.getForm().submit()
是异步的,但.getValues()
是同步的。因此,可以立即关闭窗口。