日期:2014-05-16  浏览次数:20303 次

谁能告诉我为什么老是报这两个错,要怎么改??
//这是我们在第一步中创建的Web服务的地址
  var URL = "http://webservice.webxml.com.cn/WebServices/ChinaStockWebService.asmx";
   
  //在这处我们拼接
  var data;
  data = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><getStockInfoByCode xmlns="http://WebXml.com.cn/"><theStockCode>sh600028</theStockCode></getStockInfoByCode></soap:Body></soap:Envelope>';
   
  //创建异步对象
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.open("POST", URL, false);
  xmlhttp.setRequestHeader("Content-Type", "application/soap+xml");
  xmlhttp.send(data);
  document.getElementById("data").innerHTML = xmlhttp.responseText;



"NetworkError: 403 Forbidden - http://webservice.webxml.com.cn/WebServices/ChinaStockWebService.asmx"
ChinaS...ce.asmx
Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
[在此错误处中断]

xmlhttp.send(data);

------解决方案--------------------
NetworkError: 403 Forbidden

从错误上看是服务器禁止client端发送请求。也就是没有权限。
抓包看看是什么原因。有可能是防火墙或者端口禁止访问。
------解决方案--------------------
没有权限,错误403嘛
------解决方案--------------------
1、你那创建“xmlHTTP”对象的方法不兼容IE浏览器,IE中只有类ActiveXObject,没有类XMLHttpRequest,会报错。
应该:
JScript code

var xmlHTTP = new XMLHttpRequest() || new ActiveXObject("Microsoft.XMLHTTP"||"MSXML.XMLHTTP"||"Msxml2.XMLHTTP.7.0" ||"Msxml2.XMLHTTP.6.0"||"Msxml2.XMLHTTP.5.0"||"Msxml2.XMLHTTP.4.0"||"MSXML2.XMLHTTP.3.0"||"MSXML2.XMLHTTP");

------解决方案--------------------
3、你说:“//创建异步对象
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", URL, false);”
而你上面设置的Asynchronous选项为false,刚好相反为同步模式。

4、你POST方式send的“data”字符串是否正确。

5、“document.getElementById("data").innerHTML = xmlhttp.responseText;”,作用貌似在一个ID为“data”的HTML容器中写入服务器返回的内容,这个ID名与变量data同名,是否有冲突?最好不这样命名,起码的常识。