Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJS 5中表单提交的XML响应出错_Javascript_Xml_Forms_Extjs_Response - Fatal编程技术网

Javascript ExtJS 5中表单提交的XML响应出错

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

我目前正在将一个表单升级到extjs5。 它应该向以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>
它发生在执行以下操作的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'
})