语法错误: 缺少 ;在语句 jquery jsonp 之前



我正在使用以下代码来访问托管在另一个域上的休息服务。

$.ajax({
            type: 'GET',
            url: url,
            async: false,
            jsonpCallback: 'jsonCallback',
            contentType: "application/json",
            dataType:"jsonp",
            success: function(json) {
                alert(json);
            },
            error: function(e) {
               console.log(e.message);
            }
        });

我能够正确获取数据,但是我在 Mozilla 的火虫中收到此错误:

语法错误: 缺少 ; 在语句之前

{"你好":"世界"}

谁能告诉我我在这里做错了什么?即使 Json 数据有效。我尝试了这个问题中发布的所有建议,但我仍然遇到同样的错误。

如果真的

是你要求的 JSON,不要"jsonp"设置为 dataType ,也不要提供回调:

$.ajax({
        type: 'GET',
        url: url,
        contentType: "application/json",
        success: function(json) {
            alert(json);
        },
        error: function(e) {
           console.log(e.message);
        }
});
JSON

和 JSON 的格式略有不同JKSONP 是一个函数调用表达式

callback({"hellow":"world"});

而 JSON 只是一个序列化对象

{"Hello":"world"}

从您的帖子来看,服务器似乎返回的是 JSON 而不是 JSONP

因此,您要么需要更改服务器才能正确回复(实际回调名称是请求的 get 参数)。如果跨域使用 ajax 调用,则应执行此操作

如果您没有跨域使用 ajax,请坚持使用常规 JSON

最新更新