2011-08-11 1 views
1

MSDNには、ネイティブxmlhttpを記述した記事があります。IE、XML、ゾーンセキュリティ、XMLhttprequest

http://msdn.microsoft.com/en-us/library/ms537505(v=vs.85).aspx#_id

資料で説明したように、私はネイティブのXML HTTPを有効にしています。しかし、このXMLデモはまだ私のローカルサーバー上では動作しません。それは元のサイトで実行されます。ローカルWebサーバーにダウンロードしても、それはありません。 xmlhttpリクエスト

xmlhttp=new XMLHttpRequest(); 

はオブジェクトを返しません。

デモはw3schoolsサイトhttp://www.w3schools.com/xml/tryit.asp?filename=tryxml_app_firstからのものです。

これはHTMLです。

<html> 
<head> 

<script type="text/javascript"> 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.open("GET","cd_catalog.xml",false); 
xmlhttp.send(); 
xmlDoc=xmlhttp.responseXML; 

x=xmlDoc.getElementsByTagName("CD"); 
//i=0; 

function displayCD(i) 
{ 
artist=(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue); 
title=(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue); 
year=(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue); 
txt="Artist: " + artist + "<br />Title: " + title + "<br />Year: "+ year; 
document.getElementById("showCD").innerHTML=txt; 
} 
</script> 
</head> 
<body onload="displayCD(11)"> 

<div id='showCD'></div> 

</body> 
</html> 

これはxmlファイルです。

<?xml version="1.0" encoding="ISO-8859-1" ?> 
- <!-- Edited by XMLSpy® 
    --> 
- <CATALOG> 
- <CD> 
    <TITLE>Empire Burlesque</TITLE> 
    <ARTIST>Bob Dylan</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Columbia</COMPANY> 
    <PRICE>10.90</PRICE> 
    <YEAR>1985</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Hide your heart</TITLE> 
    <ARTIST>Bonnie Tyler</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>CBS Records</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1988</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Greatest Hits</TITLE> 
    <ARTIST>Dolly Parton</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>RCA</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1982</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Still got the blues</TITLE> 
    <ARTIST>Gary Moore</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Virgin records</COMPANY> 
    <PRICE>10.20</PRICE> 
    <YEAR>1990</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Eros</TITLE> 
    <ARTIST>Eros Ramazzotti</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>BMG</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1997</YEAR> 
    </CD> 
- <CD> 
    <TITLE>One night only</TITLE> 
    <ARTIST>Bee Gees</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Polydor</COMPANY> 
    <PRICE>10.90</PRICE> 
    <YEAR>1998</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Sylvias Mother</TITLE> 
    <ARTIST>Dr.Hook</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>CBS</COMPANY> 
    <PRICE>8.10</PRICE> 
    <YEAR>1973</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Maggie May</TITLE> 
    <ARTIST>Rod Stewart</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Pickwick</COMPANY> 
    <PRICE>8.50</PRICE> 
    <YEAR>1990</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Romanza</TITLE> 
    <ARTIST>Andrea Bocelli</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>Polydor</COMPANY> 
    <PRICE>10.80</PRICE> 
    <YEAR>1996</YEAR> 
    </CD> 
- <CD> 
    <TITLE>When a man loves a woman</TITLE> 
    <ARTIST>Percy Sledge</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Atlantic</COMPANY> 
    <PRICE>8.70</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Black angel</TITLE> 
    <ARTIST>Savage Rose</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>Mega</COMPANY> 
    <PRICE>10.90</PRICE> 
    <YEAR>1995</YEAR> 
    </CD> 
- <CD> 
    <TITLE>1999 Grammy Nominees</TITLE> 
    <ARTIST>Many</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Grammy</COMPANY> 
    <PRICE>10.20</PRICE> 
    <YEAR>1999</YEAR> 
    </CD> 
- <CD> 
    <TITLE>For the good times</TITLE> 
    <ARTIST>Kenny Rogers</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Mucik Master</COMPANY> 
    <PRICE>8.70</PRICE> 
    <YEAR>1995</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Big Willie style</TITLE> 
    <ARTIST>Will Smith</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Columbia</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1997</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Tupelo Honey</TITLE> 
    <ARTIST>Van Morrison</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Polydor</COMPANY> 
    <PRICE>8.20</PRICE> 
    <YEAR>1971</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Soulsville</TITLE> 
    <ARTIST>Jorn Hoel</ARTIST> 
    <COUNTRY>Norway</COUNTRY> 
    <COMPANY>WEA</COMPANY> 
    <PRICE>7.90</PRICE> 
    <YEAR>1996</YEAR> 
    </CD> 
- <CD> 
    <TITLE>The very best of</TITLE> 
    <ARTIST>Cat Stevens</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Island</COMPANY> 
    <PRICE>8.90</PRICE> 
    <YEAR>1990</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Stop</TITLE> 
    <ARTIST>Sam Brown</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>A and M</COMPANY> 
    <PRICE>8.90</PRICE> 
    <YEAR>1988</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Bridge of Spies</TITLE> 
    <ARTIST>T'Pau</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Siren</COMPANY> 
    <PRICE>7.90</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Private Dancer</TITLE> 
    <ARTIST>Tina Turner</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Capitol</COMPANY> 
    <PRICE>8.90</PRICE> 
    <YEAR>1983</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Midt om natten</TITLE> 
    <ARTIST>Kim Larsen</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>Medley</COMPANY> 
    <PRICE>7.80</PRICE> 
    <YEAR>1983</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Pavarotti Gala Concert</TITLE> 
    <ARTIST>Luciano Pavarotti</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>DECCA</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1991</YEAR> 
    </CD> 
- <CD> 
    <TITLE>The dock of the bay</TITLE> 
    <ARTIST>Otis Redding</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Atlantic</COMPANY> 
    <PRICE>7.90</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Picture book</TITLE> 
    <ARTIST>Simply Red</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>Elektra</COMPANY> 
    <PRICE>7.20</PRICE> 
    <YEAR>1985</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Red</TITLE> 
    <ARTIST>The Communards</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>London</COMPANY> 
    <PRICE>7.80</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
- <CD> 
    <TITLE>Unchain my heart</TITLE> 
    <ARTIST>Joe Cocker</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>EMI</COMPANY> 
    <PRICE>8.20</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
    </CATALOG> 

このデモが実行されないセキュリティ上の問題はどこで発生しますか?

+0

ステップ1、変数を宣言します。例えばvar xmlhttp = new window.XmlHttpRequest(); – EricLaw

+0

問題#2:このウェブページのURLは何ですか?それがfile://の場合、IEではwindow.XmlHttpRequestオブジェクトでHTTP/HTTPSのみを使用できるため、IEのネイティブオブジェクトでは機能しません。 – EricLaw

+0

ステップ3:Asyncパラメータにfalseを渡すことはありません。 http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/do-not-use-xmlhttprequest-in-sync-mode-unless-you-like-to-hang.aspx – EricLaw

答えて

1

問題は、xmlhttprequestで開こうとしていたxmlファイルの書式設定です。私がファイル内の - を削除すると、うまくいきました。ここで、XMLと一緒に働くHTMLがあります。

HTMLファイル。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 

<script type="text/javascript"> 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.open("GET","cd_catalog.xml",false); 
xmlhttp.send(); 
xmlDoc=xmlhttp.responseXML; 

x=xmlDoc.getElementsByTagName("CD"); 

function displayCD(i) 
{ 
artist=(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue); 
title=(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue); 
year=(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue); 
txt="Artist: " + artist + "<br />Title: " + title + "<br />Year: "+ year; 
document.getElementById("showCD").innerHTML=txt; 
} 
</script> 
</head> 
<body onload="displayCD(5)"> 

<div id='showCD'></div> 

</body> 
</html> 

XMLファイル。

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<CATALOG> 
<CD> 
    <TITLE>Empire Burlesque</TITLE> 
    <ARTIST>Bob Dylan</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Columbia</COMPANY> 
    <PRICE>10.90</PRICE> 
    <YEAR>1985</YEAR> 
    </CD> 
<CD> 
    <TITLE>Hide your heart</TITLE> 
    <ARTIST>Bonnie Tyler</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>CBS Records</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1988</YEAR> 
    </CD> 
<CD> 
    <TITLE>Greatest Hits</TITLE> 
    <ARTIST>Dolly Parton</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>RCA</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1982</YEAR> 
    </CD> 
<CD> 
    <TITLE>Still got the blues</TITLE> 
    <ARTIST>Gary Moore</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Virgin records</COMPANY> 
    <PRICE>10.20</PRICE> 
    <YEAR>1990</YEAR> 
    </CD> 
<CD> 
    <TITLE>Eros</TITLE> 
    <ARTIST>Eros Ramazzotti</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>BMG</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1997</YEAR> 
    </CD> 
<CD> 
    <TITLE>One night only</TITLE> 
    <ARTIST>Bee Gees</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Polydor</COMPANY> 
    <PRICE>10.90</PRICE> 
    <YEAR>1998</YEAR> 
    </CD> 
<CD> 
    <TITLE>Sylvias Mother</TITLE> 
    <ARTIST>Dr.Hook</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>CBS</COMPANY> 
    <PRICE>8.10</PRICE> 
    <YEAR>1973</YEAR> 
    </CD> 
<CD> 
    <TITLE>Maggie May</TITLE> 
    <ARTIST>Rod Stewart</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Pickwick</COMPANY> 
    <PRICE>8.50</PRICE> 
    <YEAR>1990</YEAR> 
    </CD> 
<CD> 
    <TITLE>Romanza</TITLE> 
    <ARTIST>Andrea Bocelli</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>Polydor</COMPANY> 
    <PRICE>10.80</PRICE> 
    <YEAR>1996</YEAR> 
    </CD> 
<CD> 
    <TITLE>When a man loves a woman</TITLE> 
    <ARTIST>Percy Sledge</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Atlantic</COMPANY> 
    <PRICE>8.70</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
<CD> 
    <TITLE>Black angel</TITLE> 
    <ARTIST>Savage Rose</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>Mega</COMPANY> 
    <PRICE>10.90</PRICE> 
    <YEAR>1995</YEAR> 
    </CD> 
<CD> 
    <TITLE>1999 Grammy Nominees</TITLE> 
    <ARTIST>Many</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Grammy</COMPANY> 
    <PRICE>10.20</PRICE> 
    <YEAR>1999</YEAR> 
    </CD> 
<CD> 
    <TITLE>For the good times</TITLE> 
    <ARTIST>Kenny Rogers</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Mucik Master</COMPANY> 
    <PRICE>8.70</PRICE> 
    <YEAR>1995</YEAR> 
    </CD> 
<CD> 
    <TITLE>Big Willie style</TITLE> 
    <ARTIST>Will Smith</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Columbia</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1997</YEAR> 
    </CD> 
<CD> 
    <TITLE>Tupelo Honey</TITLE> 
    <ARTIST>Van Morrison</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Polydor</COMPANY> 
    <PRICE>8.20</PRICE> 
    <YEAR>1971</YEAR> 
    </CD> 
<CD> 
    <TITLE>Soulsville</TITLE> 
    <ARTIST>Jorn Hoel</ARTIST> 
    <COUNTRY>Norway</COUNTRY> 
    <COMPANY>WEA</COMPANY> 
    <PRICE>7.90</PRICE> 
    <YEAR>1996</YEAR> 
    </CD> 
<CD> 
    <TITLE>The very best of</TITLE> 
    <ARTIST>Cat Stevens</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Island</COMPANY> 
    <PRICE>8.90</PRICE> 
    <YEAR>1990</YEAR> 
    </CD> 
<CD> 
    <TITLE>Stop</TITLE> 
    <ARTIST>Sam Brown</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>A and M</COMPANY> 
    <PRICE>8.90</PRICE> 
    <YEAR>1988</YEAR> 
    </CD> 
<CD> 
    <TITLE>Bridge of Spies</TITLE> 
    <ARTIST>T'Pau</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Siren</COMPANY> 
    <PRICE>7.90</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
<CD> 
    <TITLE>Private Dancer</TITLE> 
    <ARTIST>Tina Turner</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>Capitol</COMPANY> 
    <PRICE>8.90</PRICE> 
    <YEAR>1983</YEAR> 
    </CD> 
<CD> 
    <TITLE>Midt om natten</TITLE> 
    <ARTIST>Kim Larsen</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>Medley</COMPANY> 
    <PRICE>7.80</PRICE> 
    <YEAR>1983</YEAR> 
    </CD> 
<CD> 
    <TITLE>Pavarotti Gala Concert</TITLE> 
    <ARTIST>Luciano Pavarotti</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>DECCA</COMPANY> 
    <PRICE>9.90</PRICE> 
    <YEAR>1991</YEAR> 
    </CD> 
<CD> 
    <TITLE>The dock of the bay</TITLE> 
    <ARTIST>Otis Redding</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Atlantic</COMPANY> 
    <PRICE>7.90</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
<CD> 
    <TITLE>Picture book</TITLE> 
    <ARTIST>Simply Red</ARTIST> 
    <COUNTRY>EU</COUNTRY> 
    <COMPANY>Elektra</COMPANY> 
    <PRICE>7.20</PRICE> 
    <YEAR>1985</YEAR> 
    </CD> 
<CD> 
    <TITLE>Red</TITLE> 
    <ARTIST>The Communards</ARTIST> 
    <COUNTRY>UK</COUNTRY> 
    <COMPANY>London</COMPANY> 
    <PRICE>7.80</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
<CD> 
    <TITLE>Unchain my heart</TITLE> 
    <ARTIST>Joe Cocker</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>EMI</COMPANY> 
    <PRICE>8.20</PRICE> 
    <YEAR>1987</YEAR> 
    </CD> 
    </CATALOG> 

ありがとうございました。