2016-09-25 73 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中写入的一样。请注意,这是注释中的值,而不是在这种情况下重要的类名。希望这能找到任何与我一样愚蠢的人!