js跨域 jsonp

ajax跨域请求

         jQuery.ajax({
                url : "http://manage.hcjdc.com/b2bmanage/turbine/action/statistic.FlowAjaxAction/eventsubmit_doSaveflow/doSaveflow",
                type : "get",//jsonp都是get请求
                data : params,
                dataType:'jsonp',
                jsonp: "callback",
                jsonpCallback:"testCallBack",//设置回调函数
                success : function(returnData) {
                    alert("success");
                }
            });

 //回调函数---当然实际应用中大多数返回的json 
function testCallBack(callName){ alert(callName); }

java代码

 response.setContentType("application/json;charset=GBK");
 PrintWriter pw = response.getWriter();
//取得回调函数
String callback = request.getParameter("callback");
//业务处理-----
//返回值格式:callback(---中间一般是json---)
pw.print(callback+"(****)");
pw.close();

 

jsonp注意事项:

报错:Uncaught SyntaxError: Unexpected token :

为什么会报这样的错呢,jsonp一点儿问题都没有,问题出在哪儿呢

出在返回值上

返回值:

错误格式:{"success":"fail"} 

正确的返回格式:callback({ "success":"yes",})

用callback包着,假如没有设置回调函数,可以返回({ "success":"yes",})

 

posted @ 2015-10-12 16:11  刘尊礼  阅读(168)  评论(0)    收藏  举报