JSONRequest.get没有响应

时间:2011-07-21 12:05:41

标签: javascript json

我正在尝试使用以下代码向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请求?

3 个答案:

答案 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/)。我没有用它,但我相信我会喜欢它的概念。它有点笨拙,或者......很好... ...但是读到它的工作原理(短段),你会喜欢它,并希望建立你自己的。

- 科迪