【发布时间】:2013-10-07 10:54:49
【问题描述】:
我有相同的代码(或多或少)在 Java 中运行良好,但是当我用 javascript 编写它时,我最终得到 404。我不知道我做错了什么,这让我发疯!
gapi.client.load('translate', 'v2', function () {
gapi.client.language.languages.list().execute(function (response) {
response.data.forEach(function(language){
console.log(JSON.stringify(language));
});
});
“语言”:
{"code":404,"message":"Not Found","data":[{"domain":"global","reason":"notFound","message":"Not Found"}],"error":{"code":404,"message":"Not Found","data":[{"domain":"global","reason":"notFound","message":"Not Found"}]}}
我可以在控制台中看到以下 POST 数据到https://content.googleapis.com/rpc?key=MY_API_KEY:
[{"jsonrpc":"2.0","id":"gapiRpc","method":"language.languages.list","apiVersion":"v1"}]
应该是 v1 吗?
相比之下,REST URL 是 https://www.googleapis.com/language/translate/v2/languages?key=MY_API_KEY(它是一个 GET),它工作正常。
【问题讨论】:
-
您可能想尝试使用 Fiddler 之类的工具,看看正在请求哪些返回 404 的 url,以及这些 url 在您的上下文中是否有意义
-
URL 与 REST API 不匹配,但它们看起来很有意义。但是,如果我必须查看 URL,那么使用 API 有什么意义呢?
-
你能在你的问题中发布两个不同的网址吗?我同意你的观点,但本着诊断的精神:你是否尝试通过不同的方式(curl'ing 或其他方式)访问这些不匹配的 URL,而不仅仅是客户端 JavaScript API 来检查这一点?客户端 API url 集是否有可能包含您的防火墙会阻止的内容?
-
@StephenJames 谢谢!我在 js api 正在使用的 URL 上使用了 curl,我可以看到,如果我将 POST 数据更改为
v2而不是v1,它可以工作!谷歌有一个错误!
标签: google-api google-translate google-api-js-client