JSON jQuery 问题 (JSONP)

JSON issue with jQuery (JSONP)

我在使用 jQuery 和 JSON 时遇到一个奇怪的问题,尤其是 JSONP。 我的目标是简单地获取 JSON 数据,但我总是以以下错误结束:

Uncaught SyntaxError: Unexpected token

代码如下:

<script type="text/javascript">
     $(document).ready(function() {
      var myurl = "someurl";

     $.ajax({
            url: myurl,
            method: 'GET',
            contentType: 'application/javascript',
            dataType : 'jsonp',
            success: function(result){
                //Do something with JSON result
            }
    });
</script> 

当然还有 JSON(原始格式):

{"result":[{"targetView":"powerUsage","myData":{"someItems":["9","5","8"],"someItems2":[{"text":"protoText","currentRecord":"45.38","absolute":100}]}}]}

我在 Google Chrome 中使用 Advanced Rest Client App 尝试了网络服务,它运行良好。我不知道为什么这个简单的示例会收到此语法错误消息。

您的 Ajax 代码看起来不错。我认为您正在尝试进行跨域调用,因为 JSONP 是处理跨域 ajax 调用的技巧。如果您的服务器代码准备好处理 JSONP 请求,那么您必须发送一个回调参数,例如

?callback=my_callback_method

您的服务将 return 产生回调结果,请参阅以下链接了解更多详情:

https://learn.jquery.com/ajax/working-with-jsonp/

您错过了将就绪函数关闭,即 }); 在脚本标签关闭之前的最后:

<script type="text/javascript">
     $(document).ready(function()
     {
       var myurl = "someurl";

       $.ajax(
       {
         url: myurl,
         method: 'GET',
         contentType: 'application/javascript',
         dataType: 'jsonp',
         success: function(result)
         {
           //Do something with JSON result
         }
       });
     });
</script>