登陆界面遇到的问题-struts2中返回json给前台一直失败回调

要做一个登陆界面,我写了个demo来演示遇到的问题。

struts.xml中的配置如下:



首页就是一个登陆界面,用户可以输入用户名和密码。

登陆页的action中接收前台通过ajax传过来的参数:username,pwd

然后在数据库中查询,比对,返回一个结果的json/给前台,前台接收结果,判断,然后跳转界面。

ajax如下:


后台的action中方法:


以上代码是可以实现登陆的。

之前遇到的问题就是:ajax中dataType:"json",但是不能进入到success中,后台是成功接收到ajax传过去的参数了得。

error回调中打印arguments[1],显示parseError的错误,把dataType改成“text”,则能够进入到成功回调中。

自己总结了几个结局的办法:

1.response.setContentType("application/json"), dataType:"application/json",网上很多说这样解决,实测没什么卵用。

2.dataType:"text",然后用eval(),或者$.parseJson()。。。等各种str to json的方法再做后续处理,可以倒是可以,但是觉得没有解决问题,只是曲线救国

3.用google的jsonplugin插件  ,可以解决。

4.也就是我上边的代码的解决方式,就是对于后台的json字符串做 处理,其实看看jquery关于json的要求,特别是1.4之后,可以发现,出现上述问题的原因就是因为你的
json字符串写的不严格,我之前是这样写的:
json = "{\"status\":+flag+","+\"message\":+message+}";
就是我声明了两个变量flag和message用来存返回的消息,我想这样结构不是更好看,结构就属于不严格的json字符串了。
就应该这样死板的写:
json = "{\"status\":\"ok\",\"message\":\"登陆成功!\"}";
而且不能用单引号,记得 \ 的使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值