我用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对象数组。
答案 0 :(得分:0)
首先,我建议您使用Notepad2
类似的编辑器尝试在源代码中显示奇怪的字符。
如果您使用从类似jsfiddle的网站复制和粘贴代码,则它们是编码程序错误的未知(而非显示)字符的来源。 看一下这篇文章:Chrome Uncaught Syntax Error: Unexpected Token ILLEGAL
如果这不能提供解决方案,希望它可以尝试帮助您进行调试。