Javascript ExtJS 5中表单提交的XML响应出错
我目前正在将一个表单升级到extjs5。 它应该向以XML响应的Web服务发送请求。由于ExtJS默认需要JSON,因此我根据文档设置了一个自定义errorReader:Javascript ExtJS 5中表单提交的XML响应出错,javascript,xml,forms,extjs,response,Javascript,Xml,Forms,Extjs,Response,我目前正在将一个表单升级到extjs5。 它应该向以XML响应的Web服务发送请求。由于ExtJS默认需要JSON,因此我根据文档设置了一个自定义errorReader: errorReader: new Ext.data.XmlReader({ record: 'error', success: '@success' }, [ 'id', 'msg' ] ) 服务器的原始响应为: HTTP/1.0 200 OK Content-Type: te
errorReader: new Ext.data.XmlReader({
record: 'error',
success: '@success'
}, [
'id', 'msg'
]
)
服务器的原始响应为:
HTTP/1.0 200 OK
Content-Type: text/xml
Content-Length: 150
Expires: Mon, 20 Oct 2014 10:00:53 GMT
<?xml version="1.0" encoding="Windows-1252"?>
<message success="false"><errors><error><id>-1</id><msg>FieldMissing</msg></error></errors></message>
它发生在执行以下操作的extractData函数中:
entityType = readOptions && readOptions.model ? Ext.data.schema.Schema.lookupEntity(readOptions.model) : me.getModel(),
schema = entityType.schema,
readOptions是未定义的,因此它会返回未定义的me.getModel,尽管我在errorReader中用id和msg定义了一个模型。然后entityType未定义,导致上述错误
我不明白,我做错了什么。请帮忙。提前感谢:最好的问题是我能自己回答的问题; 看起来文档是错误的,或者当前实现中存在错误。 医生们所说的只是不起作用:
errorReader: new Ext.data.reader.Xml({
record : 'field',
success: '@success'
}, [
'id', 'msg'
])
您必须明确定义适当的模型:
Ext.define('Field', {
extend: 'Ext.data.Model',
fields: ['id', 'msg']
});
。。。然后将其分配到以下表格中:
errorReader: new Ext.data.reader.Xml({
record : 'field',
model: 'Field',
success: '@success'
})
不过,似乎还有另一个问题。。设置success属性根本不起作用!我可以写'foo',它仍然默认为'success',这意味着它总是需要根的子级而不是根的属性
errorReader: new Ext.data.reader.Xml({
record : 'field',
model: 'Field',
success: '@success'
})