java ajax success_Java为后台,前端ajax访问后台请求成功但是进入不到success,反而进入error...

html:

$.ajax({

type:"POST",

url:"http://192.168.43.155:8080/Video/SelectAllUserServlet",

async:true,

data:{

},

error:function(){

alert("asd");

},

success:function(result){

alert("成功");

var tbody = $("#user_all").html();

var json = $.parseJSON(result);

$.each(json, function(i,o) {

//var videosName = o.videosName;

//var videosId = o.videosId;

//var videosAddress = o.videosAddress;

tbody = tbody + '

'+

'

Jacob'+

'

53275531'+

'

12 May 2017'+

'

'+

'修改'+

'删除'+

'

'+

'

';

});

$("#user_all").html(tbody);

$("#user_all").trigger("create");

}

});

后台:

response.setContentType("text/html;charset=UTF-8");

UserDao userDao = new UserDao();

ArrayList al = new ArrayList();

al = userDao.selectRecord();

String jMark = "";

PrintWriter ps = response.getWriter();

jMark = JSONArray.toJSONString(al);

System.out.println(jMark);

ps.write(jMark);

ps.flush();

ps.close();

通过浏览器查看,发现状态码是200,后台也有反应,但是就是不进入success,查了很久,有说前后台传输格式对不上,要更改dataType;还有说json格式不正确,所以导致ajax不认;

JSON格式总结下,详细的去json.org 查看。

1)键名称:用双引号 括起

2)字符串:用使用双引号 括起

3)数字,布尔类型不需要 使用双引号 括起

最后我在浏览器里找到了一条错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax

看样子应该就是他了!!!

解决方式:

1、在java服务器端的filter或者servlet里面添加

response.setHeader("Access-Control-Allow-Origin", "*");

2、如果请求的url是aspx页面,则需要在aspx页面中添加代码

Response.AddHeader("Access-Control-Allow-Origin", "*");

3、如果请求的url是PHP页面

header("Access-Control-Allow-Origin: *");

4、如果请求的url是静态的html页面,则需要在页面中添加meta标签代码:

“Access-Control-Allow-Origin”表示允许跨域访问,“*”表示允许所有来源进行跨域访问,这里也可以替换为特定的域名或ip。

很显然,这种方式对非网站拥有人员来说是不能做到的。而且此种方式很容易受到CSRF攻击。

如果还不行,就把这些都加上吧

// 指定允许其他域名访问

header('Access-Control-Allow-Origin:*');

// 响应类型

header('Access-Control-Allow-Methods:POST');

// 响应头设置

header('Access-Control-Allow-Headers:x-requested-with,content-type');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值