【问题标题】:Jsonp request return missing ; SyntaxError: missing ; before statementJsonp 请求返回丢失;语法错误:缺少;声明之前
【发布时间】:2014-08-13 05:28:41
【问题描述】:

我试试这个代码

<body>
<script>

$.ajax({
    type: "GET",
    dataType: "jsonp",
    url: "http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/statistiche/1403508155490",
    success: function(result) {
        console.log("SUCCESS");
        console.log(result);
    },
    error: function(result) {
        console.log("ERROR");
        console.log(result);
    }
});                    

</script>

但响应是 ** SyntaxError: missing ;声明前**

为什么?

【问题讨论】:

    标签: jquery ajax json rest jsonp


    【解决方案1】:

    您请求的网址返回文本:

    {"treniGiorno":2843,"ultimoAggiornamento":1403513918086,"treniCircolanti":524}
    

    正确的返回文本应该是:

    jsonCallback({"treniGiorno":2843,"ultimoAggiornamento":1403513918086,"treniCircolanti":524});
    

    还可以考虑将 jsonpCallback 参数添加到您的 ajax 查询中,如下所示:

    $.ajax({
        type: "GET",
        dataType: "jsonp",
        jsonpCallback: 'jsonCallback',
        url: "http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/statistiche/1403508155490",
        success: function(result) {
            console.log("SUCCESS");
            console.log(result);
        },
        error: function(result) {
            console.log("ERROR");
            console.log(result);
        }
    });
    

    【讨论】:

    • 我能做到吗?
    • 你必须在服务器端做:你请求的url,如果你不能在服务器上修改,那么你应该问开发人员是否有一个你可以的参数传入查询字符串以使其返回 jsonp 格式的文本。否则无法将请求作为jsonp
    • 我无法修改服务器端,如果我添加“jsonpCAllback”,我会继续收到相同的错误...
    • 如果你不能修改服务端,那么如果服务端没有返回jsonp格式就没有办法发出jsonp请求,请阅读jsonp概念...
    • 好的,但是如果我执行 dataType:"json" jquery 返回 OK 200 成功但什么也不做
    【解决方案2】:

    这是因为响应中返回的字符串不是有效的jsonp 格式。您可能想阅读this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多