2016-12-06 36 views
0

我在這個問題上已經半夜了。我通過iframe嵌入了Google地圖API到Wordpress網站,並且出現錯誤:Google Maps API服務器拒絕了您的請求。提供的API密鑰無效。谷歌地圖在Wordpress中嵌入Api:服務器拒絕了你的請求

我的鑰匙沒有問題。我把它放在wordpress之外的一個vanilla html文檔中,它工作的很好。

然後我試着在header.php中將傳感器設置爲true。 除非從我的控制檯更多的錯誤沒有區別:

無法加載資源: https://www.google.com/maps/embed/v1/place?q=place_idMyPlace酒店鍵= 的myKey的wmode =透明無法加載資源:服務器與403狀態響應() **不能發佈其餘的,因爲我需要更多的聲譽

我相信問題是與?wmode = transparent被添加到密鑰的末尾。有什麼可以補充的,我該如何刪除它?

+0

你不能使用?網址兩次。第二個問號需要用&替換。 –

+0

第二個問號?wmode = transparent是由一些WordPress主題文件插入的(它不是我的代碼的一部分)我也暫時關閉了所有插件以消除它們的原因。你知道我怎麼能阻止它被注射嗎? –

+0

如果沒有對您的網站進行全面檢查是不可能的,所以我無法幫助。關於你的要求。如果您將刪除?wmode = transparent,則此請求變爲有效https://www.google.com/maps/embed/v1/place?q=place_id:ChIJk4Fsq0bBQYgRp7ZohiVhLOk&key=AIzaSyB4WkwkwBjzbQimJ2KKtyhYk8cW356PzXM Google回答「https:// www。 google.com/maps/embed/v1/place?q=place_id:ChIJk4Fsq0bBQYgRp7ZohiVhLOk&key=AIzaSyB4WkwkwBjzbQimJ2KKtyhYk8cW356PzXM「什麼是正常的,並且意味着密鑰是有效的。 所以,你有一個問題只是因爲「?wmode = transparent「結尾 –

回答

0

問題在於你的主題。

當你看到在瀏覽器中檢查(元素選項卡)地圖的頁面,可以看到該鏈接被?的wmode =透明 Elements tab in inspector

的頁面不包含?的wmode的代碼=透明結束,你可以在檢查員的Sources選項卡上看到它: page source sode

這意味着頁面的代碼被某些js腳本修改。在Sources選項卡中瀏覽腳本,我發現以下內容: js source code

在第13行,您可以看到問題的根源。這是Youtube視頻的一些操作,這是由開發人員犯的一個粗略錯誤。他們將?wmode = transparent添加到任何iframe的src中,包括Google地圖。

我檢查了主題的latest version。同樣的錯誤。

你要做的:只是註釋行#13在文件/wp-content/themes/crescent-theme/js/jquery.custom.js並使其像這樣:

(function($) { 

    function modifyPosts() { 
     /* Fit Vids ---------------------*/ 
     $('.feature-vid, .postarea').fitVids(); 
    } 


    //Fix z-index youtube video embedding 
    $(document).ready(function(){ 
     $('iframe').each(function(){ 
      var url = $(this).attr("src"); 
      // $(this).attr("src",url+"?wmode=transparent"); 
     }); 
    }); 


    $(document) 
    .ready(modifyPosts) 
    .on('post-load', modifyPosts); 

})(jQuery); 

如果你將更新主題,你必須在同一個js文件中評論類似的行。

+0

不客氣如果答案有幫助,你可以將你的問題標記爲已回答(綠色複選標記),此外,你可以點擊向上箭頭,這些操作會給我帶來點聲望,謝謝。 –