JSON issue with jQuery (JSONP)

JSON issue with jQuery (JSONP)

本文关键字:JSONP jQuery issue with JSON      更新时间:2023-09-26

我有一个奇怪的问题使用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}]}}]}

我尝试了在谷歌浏览器的高级休息客户端应用程序的web服务,它是完美的工作。我不知道为什么这个简单的例子会得到这个语法错误消息。

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

?callback=my_callback_method

服务将返回一个回调结果,参见下面的链接了解更多细节:

https://learn.jquery.com/ajax/working-with-jsonp/
http://stackoverflow.com/questions/11736431/make-cross-domain-ajax-jsonp-request-with-jquery

您错过了准备函数关闭,即});在最后一个脚本标记关闭:

<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>