作者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