如何使用XMLHttpRequest.send()
?
我在JavaScript中的代码如下:
str_xml+="<xml_to_be_submitted><request_xml><client_id>"+document.frmCallEntryAdd.cboCLIENT.options[document.frmCallEntryAdd.cboCLIENT.selectedIndex].value+"</client_id></request_xml></xml_to_be_submitted>";
var obj_http=new ActiveXObject("Microsoft.XMLHTTP");
var str_url="ClientModuleFetch.aspx";
var str_http_method="post";
obj_http.open(str_http_method,str_url,false);
obj_http.SetRequestHeader("Content-Type","application/x-www-form-urlencoded");
obj_http.send(str_xml);
var str_reply=obj_http.ResponseText;
var xmlResponse = str_reply;
var objXmlDOM=new ActiveXObject("Microsoft.XMLDOM");
任何人都可以告诉我我做错了吗?
答案 0 :(得分:1)
首先,您的方法只适用于IE(我希望这不适用于公共网站)。我可以发现的第二个错误是你用{A}拼写SetRequestHeader
。它应该是setRequestHeader
。
你能准确发布你正在获得的错误信息(包括行号)吗?
答案 1 :(得分:0)
您发布的数据不是application/x-www-form-urlencoded
,看起来像a=b&c=f
。
您发布的数据是application/xml
或text/xml
,除非您手动构建SOAP数据包,否则通常不会与XMLHttpRequest一起使用。
我猜您正在调用一个可以接受url编码参数的脚本启用服务端点,因此手动构建的XML可能不适合发布。
如果没有,您将需要探索为那些坚持从JavaScript调用SOAP的人保留的特殊角色。我不羡慕你。 ; - )
另一方面,返回可能是您需要解析的XML。我建议使用更多跨浏览器兼容的方法进行XMLHttpRequest构造以及XML解析,因为您的代码似乎是以IE为中心。
另外,如其他地方所述,你有一个错字r.e. SetRequestHeaders
应为setRequestHeaders
。