2014-11-24 47 views
0

我想只包含給定URL部分的google結果(Div id =「ires」)。我遇到了例如「沒有」訪問控制允許起源'「 - 問題和我想知道如何解決這個問題。解析並通過Ajax請求包含HTML

我在這裏開始的jsfiddle我嘗試: http://jsfiddle.net/23z7w3xp/1/

HTML:

<div id="results">Waiting for results</div> 
<input type="button" id="btn" value="Show results"> 

JS:

$("#btn").click(function() { 
    var requesthtml = "https://www.google.de/?gfe_rd=cr&ei=pXVyVKCDJKeK8QfkkoDYCg#q=test"; 

    $.get(requesthtml, function(data) { 
     var htmlcontent = data; 
     $('#results').html(htmlcontent.find('#ires').text()); 
     alert("Load was performed."); 
    }); 
}); 
+0

這是完全不可能做到這一點。 – SLaks 2014-11-24 00:25:12

+0

這不是確定的。也許只能使用javascript,但我也可以使用php of課程 – kentor 2014-11-24 00:26:46

+1

除非特別允許CORS和/或提供JSONP端點,否則您不能直接通過JavaScript訪問其他域的內容。一種方法是通過後端「代理」或類似的東西。這裏有一個簡單的示例項目,它使用PHP和jQuery Ajax完成:https://github.com/vasilionjea/google-analytics-verify 請注意,雖然我不能告訴你它的合法性。 – istos 2014-11-24 00:35:44

回答

1

你想要做什麼是非法的。你不能把某人的網站內容嵌入你的網站中。 但是,如果你想給你的網站中使用谷歌搜索,你應該看看谷歌的custom search

這裏是一個代碼示例它是如何工作的:

<html> 
    <head> 
    <title>JSON/Atom Custom Search API Example</title> 
    </head> 
    <body> 
    <div id="content"></div> 
    <script> 
     function hndlr(response) { 
     for (var i = 0; i < response.items.length; i++) { 
     var item = response.items[i]; 
     // in production code, item.htmlTitle should have the HTML entities escaped. 
     document.getElementById("content").innerHTML += "<br>" + item.htmlTitle; 
     } 
    } 
    </script> 
    <script src="https://www.googleapis.com/customsearch/v1?key=YOUR-KEY&amp;cx=017576662512468239146:omuauf_lfve&amp;q=cars&amp;callback=hndlr"> 
    </script> 
    </body> 
</html> 

source

+0

我不會說這是不可能的,但絕對不推薦。 – 2014-11-24 00:35:25