使用 JSONP 获取"unexpected identifier"发出跨域请求



以下是我正在尝试的:

在客户端:

Ext.data.JsonP.request({
    url: "http://172.24.87.38:9090/DynamicWeb/hello-world",
    params: {
    },
    callback: function (result) {
        console.log(result);
        if (response.success === true) {
            Ext.Msg.alert('Link Shortened', response.result, Ext.emptyFn);
        } else {
            Ext.Msg.alert('Error', response.result, Ext.emptyFn);
        }
    }
});

在其他域(服务器端):

公共类HelloWorldServlet扩展HttpServlet{

public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    /*resp.setContentType("text/html");
    PrintWriter out = resp.getWriter();
    out.print("Hello World from Servlet");
    out.flush();
    out.close();*/
    boolean jsonP=false;
    String cd=req.getParameter("callback");
    String n= "{data:Hello World from Servlet}";        
    if (cd!=null) {
        jsonP=true;
        resp.setContentType("text/javascript");
    } else {
        resp.setContentType("application/x-json");
    }
    Writer out=resp.getWriter();
    out.write(n);
}
}

我得到的错误:

未捕获的SyntaxError:意外的标识符

{数据:来自Servlet的Hello World}

我没有做错什么。请帮我解决这个问题。感谢您的帮助。感谢

String n= '{"data":"Hello World from Servlet"}';
callback: function (result) { // you are stating you recieve result
        console.log(result);
        if (response.success === true) { // but you are trying to use response, change both to result or response
            Ext.Msg.alert('Link Shortened', response.result, Ext.emptyFn);
        } else {
            Ext.Msg.alert('Error', response.result, Ext.emptyFn);
        }
    }

此外,您返回的json似乎是错误的,请尝试:

callback += "({"success":true, "msj":" + """ + "Exitoooo!" + "" });"; // where callback is the parameter sent via url  

最新更新