Ajax JSONP Parseerror-Callback-Not-Callled with Tomcat 9

问题描述 投票:1回答:1

我使用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中解析答案?我无法解决其他问题。

jquery json ajax tomcat jsonp
1个回答
0
投票

我解决了看起来,我必须在服务器上给出mycallback-function的名称。 “mycallback(”+ jsonAnswer +“)”它有效。

`   PrintWriter out = response.getWriter();
    response.setContentType("application/javascript");
    response.setCharacterEncoding("UTF-8");
    out.print("mycallback("+jsonAnswer+")");
    out.flush();`
© www.soinside.com 2019 - 2024. All rights reserved.