我是 ExtJS 的新手,我是一名 Flex 开发人员。我正在尝试对我们在 Flex 应用程序中拥有的页面进行模型化。我正在尝试进行基本服务调用以访问我们的服务器(与 ExtJS 应用程序在同一域上)并将数据添加到 Store,然后将其填充到我们的 dataGrid 中。
我在线完成了教程,但现在我正在尝试修改它以使用我的 Flex 应用程序中的服务。我能够拨打服务电话并获得成功响应;但是,看起来响应是您在浏览器中粘贴 URL 时得到的(这是一个 WSDL)。
它没有击中服务中的实际方法,并返回数据。我确实做了一个简单的soapclient.js JS 项目,并且能够使用该工具获取数据,但我没有使用Ajax 获取数据。我想我做错了一些简单的事情,但无法弄清楚。
Ext.define('DG.store.PhoneCalls', {
extend: 'Ext.data.Store',
model: 'DG.model.PhoneCall',
autoLoad: true,
proxy: {
type: "ajax",
dataType: 'xml',
contentType: 'text/xml; charset=utf-8',
data: '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Header> <ns0:HeaderID xmlns:ns0="http://urlgoeshere.com/"> <ns0:string>thisisastring</ns0:string> </ns0:HeaderID> </SOAP-ENV:Header> <SOAP-ENV:Body> <tns:getRecaPayments xmlns:tns="http://urlgoeshere.com/"> <arg0>false</arg0> </tns:getRecaPayments> </SOAP-ENV:Body></SOAP-ENV:Envelope>',
url: "https://urlgoeshere.com.com/Payments_UISupport_HTTPRouter/RecaCompFacadeService/RecaCompFacadeService.wsdl",
reader: {
type: 'xml',
root: 'return',
record: 'contents'
},
afterRequest:function(req, res) {
console.log("Result: " + req.operation.response);
}
}
});
当我调试时,这并没有达到该服务的方法。它返回显示可用于该服务的所有方法的整个 WSDL 响应。
在 Flex 中,我没有问题。这个应用程序在同一个域上,所以这不是问题。我尝试在 ExtJS 中使用肥皂,但它也不起作用。我确定这是用户错误!=)
我需要做的就是:
传入一个假布尔值
在该服务中点击此方法:getRecaPayments
该服务返回一堆数据,如下所示:
<return>
<contents>
<name>Joe</name>
<ssn>111112222</ssn>
</contents>
<contents>
<name>Bob</name>
<ssn>222342222</ssn>
</contents>
<contents>
<name>Jan</name>
<ssn>555443333</ssn>
</contents>
</return>
这是我的模型电话:
Ext.define('DG.model.PhoneCall', {
extend: 'Ext.data.Model',
fields: ['name', 'ssn']
});