谁能告诉我为什么老是报这两个错,要怎么改??
//这是我们在第一步中创建的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同名,是否有冲突?最好不这样命名,起码的常识。