【问题标题】:Ajax JSONP Parseerror-Callback-Not-Called with Tomcat 9Ajax JSONP Parseerror-Callback-Not-Called with Tomcat 9
【发布时间】:2019-08-11 10:08:57
【问题描述】:

我在使用我的 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: unexpected token: ':' 之前有任何解析问题。如何在客户端站点上解析 json 中的答案?我无法用其他问题解决它。

【问题讨论】:

    标签: jquery json ajax tomcat jsonp


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-11-29
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      相关资源
      最近更新 更多