使用tomcat servlet时出现问题。我正在尝试使用jsonp在localhost上跨站点脚本。我正在尝试使用ajax / javascript访问本地服务器,如下所示:
$.ajax({
url: 'http://localhost:8080/tomtest/test',
type: 'GET',
crossDomain: true,
jsonp: 'callback',
jsonpCallback: 'mycallback',
async: false,
dataType: 'JSONP',
success: function(data) {
console.log(data);
},
error: function (request, textStatus, errorThrown) {
console.log('Error'); console.log(request.status);
console.log(request.statusText); console.log(request.readyState);
console.log(textStatus); console.log(errorThrown);
}});
mycallback = function(data){alert(data);};
我的服务器(tomcat-servlet-java)将响应以下内容:
PrintWriter out = response.getWriter();
response.setContentType("application/javascript");
response.setCharacterEncoding("UTF-8");
out.print(jsonAnswer);
out.flush();
使用Firefox查看我从服务器获得的答案:
SyntaxError:意外标记:':'之前有任何解析问题。我如何解析客户端站点上json中的答案?我无法用其他问题解决它。
答案 0 :(得分:0)
我解决了。看来,我必须在服务器上输入mycallback-function的名称。 “ mycallback(” + jsonAnswer +“)” 。
` PrintWriter out = response.getWriter();
response.setContentType("application/javascript");
response.setCharacterEncoding("UTF-8");
out.print("mycallback("+jsonAnswer+")");
out.flush();`