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

    xiaoxiao2026-03-07  4

    要做一个登陆界面,我写了个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\":\"登陆成功!\"}"; 而且不能用单引号,记得 \ 的使用。
    转载请注明原文地址: https://ju.6miu.com/read-1307724.html
    最新回复(0)