您的位置:首页 > 其它

Ajax跨域访问,访问成功但一直走error不走success的的问题解决

2017-05-25 13:26 573 查看
最近在研究php微擎的开源项目,有些功能不符合想修改,,修改的过程中遇到ajax访问java接口时可以提交值,,但响应一直走error…郁闷啊!

通过搜索各种资料,终于解决啦,废话不多说了,还是老规矩直接上代码:

我这里用了jsonp,有想了解的点击 : jsonp

前端代码:

$.ajax({
type:'post',
url:'http://171125dv96.iask.in/weiqing_manage/Package.json',
dataType:'jsonp',
jsonp:'callback',
data:{phone:18865920808, type:'0'},
jsonpCallback:"successCallback",
success:function(data){
alert("成功!success");
alert(data.name);
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert("失败!error");
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});

/*
*回调名successCallback可以自定义,必须和后台响应的名
*对应
*
*如果XMLHttpRequest.status打印值为200
*XMLHttpRequest.readyState为4
*textStatus为parsererror
*
*parsererror:解析错误
*由parsererror可以看出应该就是后台返回的数据格式有问题
*了
*/


后台代码:

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/json;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String TELPHONE = request.getParameter("phone");
String TYPE = request.getP
cb0b
arameter("type");
System.out.println("------------------------------------------");
System.out.println("telphone: " + TELPHONE);
System.out.println("type: " + TYPE);
try {
Package p = new Package();
Gson gson = new Gson();
String st = " 手机号:"+TELPHONE+",type:"+TYPE;
System.out.println("111111111111111111111");
p.setName(st);
System.out.println(" 测试: " + gson.toJson(p));
out.print("successCallback(" + gson.toJson(p) + ")");//尤其注意这里返回的数据格式: {"name":" 手机号:18865920808,type:0"}
/*
*因为Jsonp的返回类型:回调函数名+(+json+)
*
*/
} catch (Exception e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
}

}


后台打印:



问题咨询群:472148690
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐