2016-09-25 70 views
2

環境
我正在運行AppEngine Cloud端點以及引導JavaScript UI和Google SQL數據存儲。Google Cloud端點API獲取404

問題
當JavaScript調用gapi.client.load它得到404 API瀏覽器作品,當本地運行JavaScript的工作...它只是試圖通過JavaScript,我得到加載API時失敗。

這裏的錯誤,因爲它出現在Chrome:

GET https://MyAppID.appspot.com/_ah/api/discovery/v1/apis/myAP…%2Cversion%2CrootUrl%2CservicePath%2Cresources%2Cparameters%2Cmethods&pp=0 404  () 
zu @ cb=gapi.loaded_0:83 
n @ cb=gapi.loaded_0:83C 
u @ cb=gapi.loaded_0:83 
(anonymous function) @ cb=gapi.loaded_0:84 
g @ cb=gapi.loaded_0:55 
c @ cb=gapi.loaded_0:46 

它再其次是「無法讀取屬性」,因爲它無法發現它沒有加載API中的方法的另一個例外。

代碼

我的index.html頁面代碼:

​​

,我認爲這是正確的,所以我也將包括我appengine.xml:

<?xml version="1.0" encoding="utf-8"?> 
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 
<application>MyAppID</application> 
<version>1</version> 
<threadsafe>true</threadsafe> 
<use-google-connector-j>true</use-google-connector-j> 

<system-properties> 
    <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> 
</system-properties> 
</appengine-web-app> 

and my web.xml:

<?xml version="1.0" encoding="utf-8" standalone="no"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<servlet> 
    <servlet-name>SystemServiceServlet</servlet-name> 
    <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class> 
    <init-param> 
     <param-name>services</param-name> 
     <param-value>com.lthoi.myAPI</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>SystemServiceServlet</servlet-name> 
    <url-pattern>/_ah/spi/*</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 
</web-app> 

如果任何人都可以想到其他地方的錯誤,我很樂意粘貼其他文件。

+0

檢查您的應用程序日誌中是否存在「/ _ah/spi/BackendService.getApiConfig'或'/ _ah/spi/BackendService.logMessages'的請求。如果有錯誤,您需要修復它們。 – saiyr

回答

0

我和你有同樣的問題。看來,谷歌已經與引起了這個問題,現在相當一段時間的webapp端點毛刺...

它鏈接到以前的帖子: https://github.com/google/google-api-javascript-client/issues/147

(SRY爲把崗位作爲答案,而不是評論,剛剛創建了一個帳戶)

+0

我的問題與那個不同。我注意到了這個問題。 –

0

gapi.client.load查詢發現以獲取關於API的方法信息(請參閱url上的發現部分,它爲您提供404)。目前的發現在雲終端中不受支持。

要變通,你可以嘗試直接調用API(實際上我不完全確定這是否可行)。例如

gapi.client.request({ 
    // Use your own service address, URI path, and query parameters. 
    'root': 'https://your-domain.appspot.com', 
    'path': '_ah/api/foo/bar', // use your own service path 
    'params': { 
    "foo": "bar" 
    } 
}).then(
    function(resp) { 
    console.log(resp); 
    }, 
    function(err) { 
    console.log(err); 
}); 

希望這會有所幫助。

(請注意,在此回覆以前的編輯CORS功能是實驗,無證和不支持的,但這個答案是用於調試的目的。該行以啓用CORS已被刪除。)

+0

感謝您的幫助,請參閱上文,我的問題有點更基本(資本不足) –

0

所以,這裏的問題不幸是一個大寫字母。我有正確的URL,但是嘗試加載'myAPI'而不是'MyAPI',就像我在MyAPI.java中寫入的一樣。請注意,這是註釋中的值,而不是在這種情況下重要的類名。希望這能找到任何與我一樣愚蠢的人!

相關問題