我正在尝试使用以下代码向Google Places API发送获取请求:
<script type="text/javascript" src="json2.js">
var googleQuery;
function load() {
googleQuery = JSONRequest.get(
"https://maps.googleapis.com/maps/api/place/details/json?reference=3af0d044d45cd8587d9a3522bc98a95d4f60c6a8&sensor=true&key=xxxxxxxxxxxxxxxx",
function (googleQuery, value, exception) {
if (value) {
processResponse(value);
}
else {
processError(exception);
}
}
);
}
</script>
并在body onload中调用load函数。
<body onload="load()">
</body>
我在此<script>
中包含src =“json2.js”而不是在其自己的<script>
中,因为我收到了“JSONRequest未定义”错误...但我仍然得到一个奇怪的“加载是未定义的”错误。
我是否正确地处理了这个JSON请求?
答案 0 :(得分:2)
尝试:
<script type="text/javascript" src="json2.js"></script>
<script type="text/javascript">
var googleQuery;
function load(){
googleQuery = JSONRequest.get(
"https://maps.googleapis.com/maps/api/place/details/json?reference=3af0d044d45cd8587d9a3522bc98a95d4f60c6a8&sensor=true&key=xxxxxxxxxxxxxxxx",
function (googleQuery, value, exception) {
if (value) {
processResponse(value);
} else {
processError(exception);
}
}
);
}
</script>
您不能在具有src
属性的脚本代码中包含JavaScript代码。您应该将内联代码放在另一个脚本标记上,否则它将不会被执行。
答案 1 :(得分:2)
替换行:
<script type="text/javascript" src="json2.js">
带
<script type="text/javascript" src="json2.js"></script>
<script>
由于您指定了src属性,因此忽略了您的JS代码。
答案 2 :(得分:0)
JSONRequest更像是一个提案哪些浏览器可以随意实现(我认为Firefox确实如此)。
我不确定是否有任何库可以作为脚本来源以使用JSONRequest,但另一种方法是使用 flyJSONP (http://alotaiba.github.com/ FlyJSONP /#!/演示)。
flyJSONP 使用YQL(雅虎查询语言)进行任何跨域发布/获取,我强烈推荐它(特别是对于oAuth 2.0和ClientLogin等谷歌api)......它有调试器机制。
此外,还有 jankyPost (http://saunter.org/janky.post/)。我没有用它,但我相信我会喜欢它的概念。它有点笨拙,或者......很好... ...但是读到它的工作原理(短段),你会喜欢它,并希望建立你自己的。
- 科迪