2014-01-26 3 views
3

나는 ajax를 통해 Google Alert 피드를 구문 분석하려고하지만 예외가 발생합니다.Google 알림 피드를 구문 분석

$(document).ready(function() { 
    $.ajax({ 
     url: 'http://www.google.com/alerts/feeds/01662123773360489091/16526224428036307178', 
     type: 'GET', 
     dataType: "xml" 
    }).done(function(xml) { 
     $.each($("item", xml), function(i, e) { 
      $("#results").append($("enclosure").attr("url").text() + "<br />"); 
     }); 
    }); 
}); 

하지만 얻을 :

XMLHttpRequest cannot load http://www.google.com/alerts/feeds/01662123773360489091/16526224428036307178. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 

어떤 도움을 이것은 내가 뭘하려?


P.S : RSS를 구문 분석 아약스와 JQuery와 통해 피드,하지만 그들 중 누구도 나를 위해 일한 대해 이미 여러 게시물을 읽어 보시기 바랍니다.

+0

도메인 간 문제와 유사합니다. [이 사이트] (http://cypressnorth.com/programming/cross-domain-ajax-request-with-xml-response-for-iefirefoxchrome-safari-jquery/) 접근법에 대한 몇 가지 메모가 있습니다. –

답변

3

죄송합니다. 도메인 간 스크립팅을 사용할 수 없습니다. (크로스 -를

jQuery XML REST Access-Control-Allow-Origin

그것은 REST API를 (다른 서버)의 서버로 가능한 오래되지 않습니다 CORS 를 설정하여 다른 기원에서 요청을 할 수 있습니다 : 여기에 대한 답변을 참조하십시오

액세스 제어 - 허용 - 원산지 : 응답에서 "액세스 제어 - 허용 - 원산지"HTTP 헤더 을 설정하여 예를 들어, 리소스 공유) HTTP 헤더, *

구글의 헤더를 볼 때

, 그들은 그 옵션을 제공하지 않습니다

$ curl -I 'http://www.google.com/alerts/feeds/01662123773360489091/16526224428036307178' 
HTTP/1.1 200 OK 
Date: Sun, 26 Jan 2014 23:46:50 GMT 
Pragma: no-cache 
Expires: Fri, 01 Jan 1990 00:00:00 GMT 
Cache-Control: no-cache, must-revalidate 
Content-Type: text/xml; charset=UTF-8 
X-Frame-Options: DENY 
Set-Cookie: PREF=ID=3c2ff90717c79524:TM=1390780010:LM=1390780010:S=f9cyzI-rk2Nca7W3; expires=Tue, 26-Jan-2016 23:46:50 GMT; path=/; domain=.google.com 
X-Content-Type-Options: nosniff 
Server: psfe 
X-XSS-Protection: 1; mode=block 
Alternate-Protocol: 80:quic 
Transfer-Encoding: chunked 

귀하의 유일한 대안은, 값을 가져 오기 위해 서버를 사용하여 jQuery를 응용 프로그램에 값을 중계하는 것입니다.

3

대화중인 서버가 http://www.google.com/alerts/feeds/... 일 때 Access-Control-Allow-Origin이라는 응답 헤더를 보내지 않았습니다. 이 헤더를 다시 보내지 않아 사이트가 사이트에 접속할 수 없으므로 브라우저가 이러한 요청을 차단하고 있습니다. 이것은 브라우저가 구현하는 보안 조치입니다. 이 서버 측에서는 이러한 제한이 없습니다. 그러나 클라이언트 쪽에서는 차이가 있으며 이러한 제한이 있습니다.

C#/Python/your choice로 작성된 서버 측 프록시를 작성해야 타겟 URL을 요청할 수 있습니다.

즉, 귀하의 JQuery는 http://example.com/proxy/alerts.py을 요청하여 Google 알리미 URL을 호출하고이를 JavaScript로 보냅니다.

0

보통 answer here on SO의 코드를 복사하여 붙여 넣습니다.
적어도 XML에서 정확한 이름을 얻으려고하지 않으면 작동하지 않습니다. enclosure은 피드 결과에 없습니다.

하나 개의 PHP의 라인과 그 .PHP 파일에 AJAX 호출 :

getFeed.php

<?php echo file_get_contents(htmlspecialchars($_GET['url'])); ?> 

yourpage.html

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script> 
<meta charset=utf-8 /> 
<title>Test Feeds by Roko C.B.</title> 
</head> 
<body> 

<p id="feeds"></p> 

<script> 
$(function(){ 

    var feedsHTML = "" 

    $("<div/>").load('getFeed.php?url=http://www.google.com/alerts/feeds/01662123773360489091/16526224428036307178', function(response, status, xhr){ 
     var xmlDoc = $.parseXML(response), 
      $xml = $(xmlDoc), 
      $entry = $xml.find("entry"); 
     $.each($entry, function(i){ 
      var title = $(this).find('title').text(); 
      var link = $(this).find('link').attr("href"); 
      feedsHTML += "<a href='"+ link +"'>"+ title +"</a> <br>"; 
     }); 
     $('#feeds').html(feedsHTML); 
    }); 

});  
</script> 

</body> 
</html> 

개념 증명? 이 결과는 다음과 같습니다.

<p id="feeds"><a href="https://www.google.com/url?q=http://www.arabnews.com/news/516076&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNFhY_O6hwv7_d9EaA0pIyxFBstrlQ">Premarital drug <b>test</b> 'useless'</a> <br><a href="https://www.google.com/url?q=http://secondgradesugarandspice.blogspot.com/2014/01/ready-to-write-test-prep-practice-for.html&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNH3y_Bf6rk_sPoshh6F5b45308daQ">Sugar and Spice: Ready to Write! <b>Test</b> Prep &amp; Practice For Lil <b>...</b></a> <br><a href="https://www.google.com/url?q=http://www.csmonitor.com/Commentary/the-monitors-view/2014/0126/Ukraine-protests-a-test-for-the-idea-of-progress-as-inevitable&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNG9jCY57FsoCsrOZcP_timbk7odVg">Ukraine protests: a <b>test</b> for the idea of progress as inevitable</a> <br><a href="https://www.google.com/url?q=http://tommorris.org/posts/8757&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNGdE5yyKMLFDlPA-qfq5C_aMn7O3g">The Minimal Viable Vegetarian <b>test</b> - Tom Morris</a> <br><a href="https://www.google.com/url?q=http://www.navy-net.co.uk/joining-up-royal-navy-recruiting/73629-test.html&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNG4-3ZfVeGj1jA7FCBgQsD5jO9lwA"><b>Test</b> - Navy Net</a> <br><a href="https://www.google.com/url?q=http://www.rawstory.com/rs/2014/01/26/dna-test-of-7000-year-old-tooth-overturns-popular-image-of-light-skinned-european-hunter-gatherers/&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNGjqu6y8GTcw1W_MFzen2nR0mBkIQ">DNA <b>test</b> of 7000-year-old tooth overturns popular image of light <b>...</b></a> <br><a href="https://www.google.com/url?q=http://financialadvisercoach.com/2014/01/27/the-4-step-ethics-test-for-financial-professionals/&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNHn-o8toDuYi-PX4buRf0hZCfy4cw">The 4 Step Ethics <b>Test</b> for Financial Professionals – The Financial <b>...</b></a> <br><a href="https://www.google.com/url?q=http://nypost.com/2014/01/26/test-tube-grown-meat-might-be-coming-to-brooklyn/&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNHd8-9mUEGl_VwJXkLDjInWQsGYTA"><b>Test</b> tube grown meat might be coming to Brooklyn</a> <br><a href="https://www.google.com/url?q=http://www.ministryoftesting.com/2014/01/testing-presentations/&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNEfjw4Gr3Io70EVzZCx0lZjq7WOrg"><b>Testing</b> Presentations | Ministry of TestingMinistry of <b>Testing</b></a> <br><a href="https://www.google.com/url?q=http://gospeldrivendisciples.blogspot.com/2014/01/the-test-of-fellowship-part-3.html&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNHX5Q5kZfeHSTo389RAVutxxwHWcg">*Gospel-driven Disciples: The <b>Test</b> of Fellowship (Part 3)</a> <br><a href="https://www.google.com/url?q=http://forums.wpcentral.com/developers-beta-testing/260700-test-livezen-windows-phone.html&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNFjJuCwnVm_FGFbhrnQFuEG54bi2w"><b>Test</b> LiveZen on Windows Phone - Windows Phone Central Forums</a> <br><a href="https://www.google.com/url?q=http://www.clevelandbanner.com/view/full_story/24452083/article-CSCC-to-offer-both-HiSet--GED-tests%3Finstance%3Dlatest_articles&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNEv00h7ou07AOehSP2l16Wmdv-h_Q">CSCC to offer both HiSet, GED <b>tests</b></a> <br><a href="https://www.google.com/url?q=http://www.willitsnews.com/news/ci_24996241/api-school-test-scores-expected-vanish-california-2&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNFyKOmfO9R_E9VYbA6xkYnVmwIO6w">API school <b>test</b> scores expected to vanish in California for 2 years <b>...</b></a> <br><a href="https://www.google.com/url?q=http://www.farmweekly.com.au/news/agriculture/cattle/dairy/preg-test-lifts-dairy-profit/2685288.aspx&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNFFCyCOwYkmo-BmaW44cEXclb8VqA">Preg <b>test</b> lifts dairy profit</a> <br><a href="https://www.google.com/url?q=http://ajw.asahi.com/article/economy/technology/AJ201401270001&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNGXyAR1NLEgPti_Hfm8MJCETjvZtg">Researchers <b>test</b> sail for energy-efficient cargo ship</a> <br><a href="https://www.google.com/url?q=http://bringatrailer.com/2014/01/25/one-of-one-1970-chrysler-electric-test-vehicle-1/&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNHgALMWfD8AHa87pDRzcGGtTFXf6A">One of One: 1970 Chrysler Electric <b>Test</b> Vehicle-1 - Bring a Trailer</a> <br><a href="https://www.google.com/url?q=http://forums.linn.co.uk/bb/showthread.php%3Ftid%3D25860&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNGkR33R46DtOCfuwrqd5wBCC6BvDw">Interesting Hearing Study and <b>Test</b> - Linn Forums</a> <br><a href="https://www.google.com/url?q=http://www.musiccitymiracles.com/2014/1/26/5347204/tennessee-titans-free-agents-sign-test-cut&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNEglk6qoddYkY_H6ISPAyRzteCJ5w">Tennessee Titans free agents: Sign, <b>test</b>, cut - Music City Miracles</a> <br><a href="https://www.google.com/url?q=http://techlorebyigor.blogspot.com/2014/01/passing-my-piss-test.html&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNGFXpQSZbXZL2oKANeYbWA1q2_eng">tech lore by igor: Passing My Piss-<b>Test</b></a> <br><a href="https://www.google.com/url?q=http://www.lenorahenson.com/2014/01/test.html&amp;ct=ga&amp;cd=&amp;cad=CAI&amp;usg=AFQjCNEqPuP8KuzAngKU5jO43pKtK1dahA">The Lenora Aura: <b>test</b></a> <br></p> 
관련 문제