作者tui (Tui from NZ)
看板Ajax
标题[问题] IE7运行ajax会出错 但是firefox却ok??
时间Thu Dec 20 16:10:16 2007
请问各位高手 小弟是ajax的新手
有一个问题一直无法解决
就是以下的code可以在firefox(windows xp,linux),konqueror(linux)上运行
但是用到IE7 就会出现STATUS CODE 500 INTERNAL SERVER ERROR
小的一直想不透是哪里会造成这个问题 可以帮我看吗
function loadAsync(SOAPMessage) {
var xmlHttp;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// 上面的定义用过w3c教学的方法 还是一样的问题
xmlHttp.open("POST", "/greenstone3/services/localsite", true);
xmlHttp.onreadystatechange = function () {
document.ajax.queryText.value="Wait server..."; //在textarea显示状态
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
alert("Done"); <-- Firefox 是到这边
}
else
{
alert("Error"); <--IE7 会跑到这边
}
}
}
xmlHttp.setRequestHeader('SOAPAction', ' ');
xmlHttp.setRequestHeader('Content-Type', 'Content-Type: text/xml; charset=utf-8');
xmlHttp.send(SOAPMessage);
}
soap message 是这样的:
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><message><response from="auckland/DocumentMetadataRetrieve" type="process">
<documentNodeList><documentNode nodeID="HASH01853c3e55cf8af911a68e95"><metadataList>
<metadata name="archivedir">HASH0185.dir</metadata></metadataList></documentNode></documentNodeList></response></message></soapenv:Body></soapenv:Envelope>
如果试着把soap message存到xml里面 改用"GET" 的话 IE7 FIREFOX都可以顺利运行 但是一用POST 从SERVER取东西的话 就会出错
各位高手有任何的想法吗 THANKS
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.238.11.198
1F:推 fillano:ie7内建原生的xmlhttprequest物件,不必再用activex 12/20 21:18
2F:→ fillano:另外,content-type的第二个参数,直接从text/xml开始吧 12/20 21:20
3F:→ fillano:post的content-type是application/x-www-form-urlencoded? 12/20 21:22
4F:→ tui:多谢楼上 加了SOAP HEADER就运行了 空白就不行 12/21 15:13