JQuery将json解释为脚本?

时间:2011-03-12 07:26:44

标签: javascript 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) {
    });
  });

5 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

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

答案 2 :(得分:1)

为了从其他域(例如googleapis.com)获取JSON,您必须使用JSONP而非普通JSON(有关详细信息,请阅读{{3} })。

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

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

答案 3 :(得分:0)

所以我的Maps API有点生疏,但最后callback=?是不是将输出转换为JSONP result,这确实是一个脚本?

尝试放弃查询字符串的回调部分。

答案 4 :(得分:0)

请告诉我这是否回答了您的问题:webkit based browser interpretate the json as a script