2013-04-05 1 views
0

IIS를 통해 내 localhost를 작동 시키려면 w3schools에서 다음 코드를 얻으려고합니다. 내가 그것을 실행할 때, 나는 그것이 요청한 rss 피드를 검색하려고 시도하지만 불행하게도 결코 실행되지 않는 것을 볼 수있다. 그것은 내가 선택할 수있는 옵션을 볼 수는 있지만 표시하지는 않습니다.로컬 호스트에서 작동하지 않는 Ajax RSS 피드

사전 도움을 주셔서 감사드립니다.

<html> 
    <head> 
     <script> 
      function showRSS(str) 
      { 
       if (str.length==0) 
        { 
        document.getElementById("rssOutput").innerHTML=""; 
        return; 
        } 
       if (window.XMLHttpRequest) 
        {// code for IE7+, Firefox, Chrome, Opera, Safari 
        xmlhttp=new XMLHttpRequest(); 
        } 
       else 
        {// code for IE6, IE5 
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
       xmlhttp.onreadystatechange=function() 
        { 
        if (xmlhttp.readyState==4 && xmlhttp.status==200) 
        { 
        document.getElementById("rssOutput").innerHTML=xmlhttp.responseText; 
        } 
        } 
      xmlhttp.open("GET","getrss.php?q="+str,true); 
      xmlhttp.send(); 
     } 
     </script> 
    </head> 
<body> 

    <form> 
     <select onchange="showRSS(this.value)"> 
      <option value="">Select an RSS-feed:</option> 
      <option value="Google">Google News</option> 
      <option value="MSNBC">MSNBC News</option> 
     </select> 
    </form> 
    <br> 
    <div id="rssOutput">RSS-feed will be listed here...</div> 
    </body> 
</html> 

그리고 PHP 파일

<?php 
    header('Access-Control-Allow-Origin: *'); 
    //get the q parameter from URL 
    $q=$_GET["q"]; 

    //find out which feed was selected 
    if($q=="Google") 
      { 
      $xml=("http://news.google.com/news?ned=us&topic=h&output=rss"); 
      } 
     elseif($q=="MSNBC") 
      { 
     $xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml"); 
     } 

    $xmlDoc = new DOMDocument(); 
    $xmlDoc->load($xml); 

    //get elements from "<channel>" 
    $channel=$xmlDoc->getElementsByTagName('channel')->item(0); 
    $channel_title = $channel->getElementsByTagName('title') 
    ->item(0)->childNodes->item(0)->nodeValue; 
    $channel_link = $channel->getElementsByTagName('link') 
    ->item(0)->childNodes->item(0)->nodeValue; 
    $channel_desc = $channel->getElementsByTagName('description') 
    ->item(0)->childNodes->item(0)->nodeValue; 

    //output elements from "<channel>" 
    echo("<p><a href='" . $channel_link 
     . "'>" . $channel_title . "</a>"); 
    echo("<br>"); 
    echo($channel_desc . "</p>"); 

    //get and output "<item>" elements 
    $x=$xmlDoc->getElementsByTagName('item'); 
    for ($i=0; $i<=2; $i++) 
     { 
     $item_title=$x->item($i)->getElementsByTagName('title') 
     ->item(0)->childNodes->item(0)->nodeValue; 
     $item_link=$x->item($i)->getElementsByTagName('link') 
     ->item(0)->childNodes->item(0)->nodeValue; 
     $item_desc=$x->item($i)->getElementsByTagName('description') 
     ->item(0)->childNodes->item(0)->nodeValue; 

     echo ("<p><a href='" . $item_link 
     . "'>" . $item_title . "</a>"); 
     echo ("<br>"); 
     echo ($item_desc . "</p>"); 
     } 
?> 
+0

죄송합니다. 여기에 작은 편집 하나만 있으면 XAMPP에서 코드를 실행할 수 있지만 IIS에서는 그렇지 않습니다. 이유는 무엇인가 궁금합니다. – Cdndoodlez

답변

0

아마이 크로스 플랫폼 문제입니다.

당신이 크롬을 사용하는 경우, 다음과 같이 그것을 열어보십시오 :

chrome.exe -allow-file-access-from-files 
0

를 HTML 코드이 없기 때문에 :의 RSS 피드를 선택하면

  • 확인; 다음
  • 서버 응답 준비가되었을 때 실행되는 기능을 생성합니다.
  • , 서버의 파일에 해제 요청을 보냅니다

당신은 당신의 Mac에서이를 사용하고 있습니까? 나는 localhost가 os x에서 서버 응답을 줄 수 없다고 생각한다. 또는 터미널을 사용하여 무언가를 잠금 해제해야 작동합니다.

이 코드는 내 서버에서 작동하기 때문에 정확합니다.

관련 문제