前台页面:
$.ajax({
            type: ‘GET’,
            url: url,
            async: false,
            jsonpCallback: ‘jsonCallback’,
            contentType: “application/json”,
            dataType:”jsonp”,
            success: function(json) {
                alert(json);
            },
            error: function(e) {
               console.log(e.message);
            }
        });

后台Servlet:
JSONObject jsonObject = new JSONObject();
jsonObject.put(“msg”, “hello”);
response.setContentType(“application/json”);
response.setCharacterEncoding(“UTF-8”);  
response.setHeader(“Cache-Control”, “no-cache”);  
response.getWriter().write(jsonObject.toString());
response.getWriter().flush();

但是前台接受值的时候,通过firebug调试发现抛出“SyntaxError: missing ; before statement“,在百度上搜了半天也没有找到一个靠谱的方法,有好多帖子说是URL问题,但是我肯定URL没有问题。后来转而用google,一下就找到问题根源了,嗨… … 差距啊,还是推荐使用google。
参考网址:
http://stackoverflow.com/questions/20658674/syntaxerror-missing-before-statement-jquery-jsonp

解决方法:
将 dataType:”jsonp” 这个属性去掉就可以啦,具体原因还没有查,下班了,明日继续刨根问底。
$.ajax({
        type: ‘GET’,
        url: url,
        contentType: “application/json”,
        success: function(json) {
            alert(json);
        },
        error: function(e) {
           console.log(e.message);
        }});

情况一:

原因: $.post(‘checkUser.ashx’, { Action: “Check”, Name: user }, Name:user 没有加双引号

情况二:没有引用对正确的jquery-xxx.js文件,查看当前页是否能够应用到这个文件。

情况三:如果回调函数中打印的不知json类型的数据,如

w3c school 给出的标准用法,即参数说明如下:

在此输入图片描述

注意:

$.post(),中的回调函数中的,要执行的数据类型,要和dataType匹配,否则无法正常执行回调函数。

例如:

在回调函数中只执行alert, datatype就可以填,或者填写text。 但是在回调函数中执行json格式的数据,就必须将dataType写为json。

这个是我写$.post()