【问题标题】:Soap messages with DHTMLX Touch带有 DHTMLX Touch 的肥皂信息
【发布时间】:2012-03-06 08:49:43
【问题描述】:

使用 dhtmlx touch,您可以轻松发送 ajax 调用,例如:

dhx.ajax().get("some.php","a=1"); //GET: some.php?a=1
dhx.ajax().post("some.php","a=2"); //GET: some.php; POST: a=2;

但是是否也可以使用 dhtmlx 发送 SOAP 请求? 比如:

var xml = //XML string HERE;
dhx.ajax().post("some.php",xml); //Post SOAP request

【问题讨论】:

    标签: javascript soap dhtmlx


    【解决方案1】:

    我认为ajax() 函数不是解决问题的方法。 Have you tried using dhtmlxService

    这是一个很好的标记示例:

    function doInvoke() {
        var ip = document.getElementById("ipaddress").value;
        var service = new dhtmlxService(
            "http://www.webservicex.net/geoipservice.asmx?WSDL", "GeoIPService", "GeoIPServiceSoap");
        var response = service.invokel("GetGeoIP", "IPAddress", ip);
        document.getElementById("country").value = response.getValue("CountryName"); 
    }
    

    【讨论】:

    • 问题是我使用的是 DHTMLX Touch 而不是 DHTMLX。您的解决方案可以正常工作,但不能在 Touch 环境中工作。不过感谢您的回答。
    【解决方案2】:

    一个 SOAP Web 服务就像一个 RESTful 请求,因为它们基本上都是在向服务器执行 HTTP POST 数据。不同之处在于 Web 服务有很多额外的“东西”是必需的(例如 SOAP 信封)。因此,只要您可以在代码中以编程方式构建请求的 SOAP 部分,就没有理由不能使用 ajax().post 机制在完全中调用 SOAP Web 服务> 你在上面的问题中描述的方式。

    【讨论】:

    • 我的想法完全一样,但是当我尝试使用它时,它会生成一个默认参数,即数据:如果我愿意,我可以在这个数据中放入我的整个肥皂消息,但这是无用的,因为服务器看到数据参数和响应,因为我不支持。
    • 我不是专家 - 但试试这个,它可以工作:informit.com/articles/article.aspx?p=169106&seqNum=7 (4.71)
    • 我仔细看了一下,似乎是它不起作用的原因,是因为ajax对象没有接受额外http头的能力,所以没有地方设置请求的 SOAPAction。我认为,如果您感到绝望,您可以做的是基于 dhx.ajax 对象创建自己的 ajax 对象,并添加自己添加自定义标头的功能。 Ajax 对象从 touchui_debug.js 文件的第 2554 行开始。
    【解决方案3】:

    我已经对其进行了更彻底的研究,但框架似乎无法实现。解决方案是我必须创建自己的调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2015-04-24
      相关资源
      最近更新 更多