在JavaScript中使用XMLHttpRequest.send()

时间:2010-05-13 12:57:52

标签: javascript xml xmlhttprequest

如何使用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");

任何人都可以告诉我我做错了吗?

2 个答案:

答案 0 :(得分:1)

首先,您的方法只适用于IE(我希望这不适用于公共网站)。我可以发现的第二个错误是你用{A}拼写SetRequestHeader。它应该是setRequestHeader

你能准确发布你正在获得的错误信息(包括行号)吗?

答案 1 :(得分:0)

您发布的数据不是application/x-www-form-urlencoded,看起来像a=b&c=f

您发布的数据是application/xmltext/xml,除非您手动构建SOAP数据包,否则通常不会与XMLHttpRequest一起使用。

我猜您正在调用一个可以接受url编码参数的脚本启用服务端点,因此手动构建的XML可能不适合发布。

如果没有,您将需要探索为那些坚持从JavaScript调用SOAP的人保留的特殊角色。我不羡慕你。 ; - )

另一方面,返回可能是您需要解析的XML。我建议使用更多跨浏览器兼容的方法进行XMLHttpRequest构造以及XML解析,因为您的代码似乎是以IE为中心。

另外,如其他地方所述,你有一个错字r.e. SetRequestHeaders应为setRequestHeaders