2011-03-12 48 views
4

如果你们都能帮助我,我真的很感激。JQuery将脚本解释为json?

这是我收到的错误:“资源解释为脚本,但与MIME类型application/JSON转移”

(“资源”指的是从谷歌的服务器JSON响应。)

这里是我的代码:

$(document).ready(function(){ 
    $.getJSON("http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false&callback=?", function(jsondata) { 
    }); 
    }); 
+0

当我运行的代码我得到“请用POST请求”为JSON响应......也许尝试$就不是,指定的帖子? – 2011-03-12 07:35:58

+0

好的,谢谢 – Andrew 2011-03-12 07:37:18

回答

5

试试这个:

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="http://maps.google.com/maps/api/js?sensor=false"></script> 

<script> 
    $(document).ready(function(){ 
     var loc = "1600 Amphitheatre Parkway, Mountain View, CA"; 
     var geocoder = new google.maps.Geocoder(); 
     geocoder.geocode({'address': loc }, 
      function(data, status) { console.log(data); }); 
    }); 
</script> 
+0

你可能是有史以来最令人敬畏的人了。非常感谢! – Andrew 2011-03-12 07:50:19

+0

同意,我一直在寻找这个确切的解决方案。你是老板。 – 2011-11-02 17:03:31

+0

出于好奇...有没有人了解谷歌的地理编码apis工作(哪一个使用时),似乎有几个不同的选项,它们中的每一个都有不同的工作方式和不同的限制和能力。 – 2011-11-04 21:43:02

1

您呼叫不支持JSONP该网站,只返回的JSON。

+0

非常感谢你的回复,但是你知道我怎么能让我的代码工作,现在我知道我打电话的网站只响应json? – Andrew 2011-03-12 07:38:19

+0

@Andrew - 我对你以前的问题的答案(http://stackoverflow.com/questions/5281039/jquery-wont-get-json/5281137#5281137)展示了如何使用api对象来使用地理编码。我可以在这里重新发布它,如果你想... – Pandincus 2011-03-12 07:39:32

+0

请注意,使用地理编码只允许您使用符合谷歌地图的数据。看看使用条款 – Shaz 2011-03-12 07:42:14

0

所以我的地图API有点生疏,但不是callback=?在最后把输出变成JSONP result,这确实是一个脚本?

尝试开沟查询字符串的回调部分。

+0

如果我这样做,那么我最终会出现Access-Control-Allow-Origin错误。 :(这实际上是我刚刚修复的。 – Andrew 2011-03-12 07:39:10

1

为了从另一个域获取JSON(如googleapis.com),你必须使用JSONP不是普通JSON(更多信息,请阅读在same origin policy上)。

幸运的是,添加一个GET参数,其值为问号(callback=?,在您的代码中)会导致jQuery尝试进行JSONP调用。 Un幸运的是,该网站正在忽略您对JSONP的请求并提供直接的JSON。

两个可能的原因是该网站不支持JSONP(这对于公共Google API来说可能很奇怪),或者它期望该名称是其他内容(即不是callback=)。查看Google API文档,了解他们期望/支持的内容。

+0

好吧,非常感谢。 – Andrew 2011-03-12 07:40:07

+0

支持的选项:回调,base_domain,语言,other_params ---显然谷歌确实接受回调;谢谢你消除一个可能的错误来源,虽然 – Andrew 2011-03-12 07:41:49