ExtJS 5中表单提交的XML响应出错
Error on XML response of a form submit in ExtJS 5
我目前正在将一个表单升级到ExtJS 5。它应该向以XML响应的Web服务发送请求。由于ExtJS默认使用JSON,因此我根据文档设置了一个自定义的errorReader:
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>
当收到回复时,我在我的页面上看到一个错误,如下所示(翻译自德语):
Error: Property "scheme" can not be obtained from an undefined or null referenced object
Row: 48503
Source: ext-all-debug.js
它发生在一个"extractData"函数中,该函数执行以下操作:
entityType = readOptions && readOptions.model ? Ext.data.schema.Schema.lookupEntity(readOptions.model) : me.getModel(),
schema = entityType.schema,
readOptions是未定义的,所以我也是。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",这意味着它总是期望根的子级,而不是根的属性。
相关文章:
- 显示IIS上javascript文件(SOAP请求)的XML响应
- XMLHttpRequest获取请求xml响应
- dojo/request/iframe中读取xml响应的缺陷
- 跨域 Post 方法 ajax 调用使用 jQuery 和 XML 响应
- Angularjs - 使用 $http 获取 xml 响应而不是 json
- 哪个“控制器”在 JSON 中转换来自 .NET Web 服务的 XML 响应
- AJAX 检索 xml 响应
- sinon fakeserver 可以发送 xml 响应吗?
- 如何使用 jquery 通过函数解析 XML 响应
- 可以在ExtJS中将XML响应作为流读取吗
- 如何使用JspPage获取xml响应
- XHR纯XML响应类型
- IE9拒绝处理XML响应
- 来自thetvdb的Angular js和XML响应
- ExtJS 5中表单提交的XML响应出错
- 在ajax xml响应中正确检测数字数据
- 如何在JavaScript中解析API的XML响应
- 需要使用Javascript/JQuery使用Rest API XML响应
- 使用jquery获取跨站点XML响应
- Internet explorer截获XML响应