Tomcat 9的Ajax JSONP Parseerror-Callback-Not-Called

时间:2019-03-20 16:13:50

标签: jquery json ajax tomcat jsonp

使用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查看我从服务器获得的答案:

enter image description here

SyntaxError:意外标记:':'之前有任何解析问题。我如何解析客户端站点上json中的答案?我无法用其他问题解决它。

1 个答案:

答案 0 :(得分:0)

我解决了。看来,我必须在服务器上输入mycallback-function的名称。 “ mycallback(” + jsonAnswer +“)”

`   PrintWriter out = response.getWriter();
    response.setContentType("application/javascript");
    response.setCharacterEncoding("UTF-8");
    out.print("mycallback("+jsonAnswer+")");
    out.flush();`