" Uncaught SyntaxError:意外的令牌:"在jQuery Ajax中

时间:2014-12-01 13:04:41

标签: jquery ajax json rest jsonp

我用Java构建了一个REST Web服务,用于在" application / json"中发送数据。格式。它运行在不同域上的单独Linux机器上,我正在尝试使用jQuery $ .ajax从我的Windows机器访问REST数据。

当我在浏览器中输入URL时,它会提示我输入用户名密码,如预期的那样。在提供正确的值时,我可以看到JSON输出。

但是当我尝试通过jQuery Ajax函数这样做时,我不断收到以下错误:

Uncaught SyntaxError: Unexpected token :

我的服务器网址如下所示:

http://my.server.com:port/application/rest/1.0/Books

如果我在浏览器中输入,我会在白色背景中输出以下文本:

{ items: [{ BookId : 134675, LastReadDate: "2014-11-25 00:00:00.0", Source: null },{ BookId : 134676, . . . ]}

有更多的数据,但这与手头的问题无关。请放心,contentType是application/json,这里是我写的AJAX函数:

$(document).ready(function() { $.ajax({ url: "http://my.server.com:port/application/rest/1.0/Books",
type: "Get", crossDomain: true, success : function(data) { console.log(data); }, error: function(jqXHR, textStatus, errorThrown){ alert(textStatus + " " + errorThrown); }, dataType: "jsonp", contentType: "application/json", jsonp: false, jsonpCallback: "myMethod", username: "user1", password: "1234" }); });

在jQuery AJAX之外,myMethod被定义为:

window.myMethod = function(data) { return data; }

jQuery AJAX中的错误方法告诉我jsonpCallback没有被调用。

我在stackoverflow上发现了类似的错误,但没有一个建议让它消失。

我使用的是Chrome Inspector工具 - 请求按预期加载JSON数据,但在items数组启动的第一行中,冒号可能未被接受。正如我从其他线程所理解的那样,它期待开始回调。但无论我做什么,我都无法收到callback({JSON})格式。

请帮忙。是的,我可以访问服务器,并且我在Chrome和Mozilla中使用REST客户端扩展测试了其余数据。正在返回正确的JSON对象数组。

1 个答案:

答案 0 :(得分:0)

首先,我建议您使用Notepad2类似的编辑器尝试在源代码中显示奇怪的字符。

如果您使用从类似jsfiddle的网站复制和粘贴代码,则它们是编码程序错误的未知(而非显示)字符的来源。 看一下这篇文章:Chrome Uncaught Syntax Error: Unexpected Token ILLEGAL

如果这不能提供解决方案,希望它可以尝试帮助您进行调试。