首页 新闻 会员 周边

ajax跨域请求 jspon报错 parsererror

0
[已解决问题] 解决于 2017-06-13 09:28

ajax代码:

$.ajax({
            url: url,
            type: 'GET',
            dataType: 'jsonp',
            async:false,
            jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)  
            jsonpCallback: "jsonpcallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据  
            timeout : 40000,
            success: function(data){
                alert(data[0].name);
            },        
                    
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                 alert(XMLHttpRequest.status);
                 alert(XMLHttpRequest.readyState);
                 alert(textStatus);
            }
        });

后台代码:

String jsonpcallback = request.getParameter("callback");  
        jsonpcallback = jsonpcallback == null ? "" : jsonpcallback;  
        response.setContentType("application/x-javascript");  
        response.setCharacterEncoding("UTF-8");  
        response.setHeader("P3P", "CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");  
        
        PrintWriter out;
        try {
            out = response.getWriter();
             out.write(jsonpcallback+ "([{ returnFlag:"+bln+",taskid:"+taskid+"}]);");  
              out.flush();  
              out.close(); 
        } catch (IOException e) {
            e.printStackTrace();
        }  

运行ajax一直走error,其中

XMLHttpRequest.status :200
XMLHttpRequest.readyState :4
textStatus :parsererror

 

求大神指点!

ckx0709的主页 ckx0709 | 菜鸟二级 | 园豆:414
提问于:2017-06-12 17:31
< >
分享
最佳答案
0

没有写回调函数名.问题出在

String jsonpcallback = request.getParameter("callback");

打断点.调到jsonpcallback有值就行

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2017-06-12 19:55

 out.write("jsonpcallback({ returnFlag:"+bln+",taskid:"+taskid+"});"); 

ckx0709 | 园豆:414 (菜鸟二级) | 2017-06-13 09:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册