Javascript 使用DHTMLX Touch的Soap消息

Javascript 使用DHTMLX Touch的Soap消息,javascript,soap,dhtmlx,Javascript,Soap,Dhtmlx,使用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 S

使用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
我不认为ajax函数是解决这个问题的方法

下面是一个很好的标记示例:

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"); 
}

soapweb服务与RESTful请求类似,因为它们基本上都在向服务器发送HTTP数据。区别在于web服务有很多额外的东西,例如SOAP信封。因此,只要您可以在代码中以编程方式构建请求的SOAP部分,就没有理由不能使用ajax.post机制以您在上面的问题中所描述的方式调用SOAP web服务。

我已经对其进行了更深入的研究,但在框架中似乎是不可能的。解决方案是我必须创建自己的呼叫。

问题是我使用的是DHTMLX Touch而不是DHTMLX。您的解决方案可以正常工作,但在触摸环境中不行。谢谢你的回答。我的想法完全正确,但当我尝试使用它时,它会生成一个默认参数,即数据:在这个数据中,如果我愿意,我可以放入我的整个soap消息,但这是有用的,因为服务器看到数据参数和响应,因为我不支持。我不是专家,但请尝试一下,它可以工作:4.71我仔细看了一下,它不工作的原因似乎是因为ajax对象不能接受额外的http头,所以没有地方为请求设置SOAPAction。我认为如果您是desparate,您可以做的是基于dhx.ajax对象创建自己的ajax对象,并添加自己添加自定义头的功能。Ajax对象从touchui_debug.js文件的第2554行开始。