ajax发送参数到后端,ajax 发送post 请求,后台不能获取到参数

45 回复

贴代码用 "插入代码" 按钮, 重新贴一下吧, 还有后台日志也要贴一下

@At

@Ok("json")

public Object login(@Param("username") String username,

@Param("password") String password, Ioc ioc, HttpServletRequest req) {

NutMap re = new NutMap();

re.put("message", "接收不到用户名或者密码" + username + "==" + password);

if (username == null || password == null) {

re.put("message", "接收不到用户名或者密码" + username + "==" + password);

re.put("ok", false);

return re;

}

}

$.ajax({

type : "post",

url : "${ctx}/admin/login",

data : {

"username" : username,

"password" : pass

},

dataType : "json",

success : function(data) {

if (data.ok) {

window.location.href = "${ctx}/admin/index";

dispose();

} else {

alert(data.message);

alert("用户名或者密码错误");

}

},

error : function(e) {

}

});

$.ajax({

type : "post",

url : "${ctx}/admin/login",

data : {

"username" : username,

"password" : pass

},

dataType : "json",

success : function(data) {

if (data.ok) {

window.location.href = "${ctx}/admin/index";

dispose();

} else {

alert(data.message);

alert("用户名或者密码错误");

}

},

error : function(e) {

}

});

我本地环境是可以运行的,但是在服务器上面就获取不到参数。

DEBUG - Found mapping for [POST] path=/admin/login : AdminModule.login(AdminModule.java:71)

DEBUG - Get 'adminModule'

DEBUG - SELECT * FROM t_user WHERE name=? AND passwd=? LIMIT 0, 1

| 1 | 2 |

|-------|----------------------------------|

| admin | E10ADC3949BA59ABBE56E057F20F883E |

For example:> "SELECT * FROM t_user WHERE name='admin' AND passwd='E10ADC3949BA59ABBE56E057F20F883E' LIMIT 0, 1 "

看来服务器已经响应了,chrome的开发者工具看看服务器响应的内容

{message: "接收不到用户名或者密码null==null", ok: false}

message

:

"接收不到用户名或者密码null==null"

ok

:

false

接收不到用户名或者密码null==null

我前台填写了参数上传到了服务器,还是会提示 这个值为NULL

chrome看看浏览器发送的内容

Request URL:http://www.scpzlc.com/admin/login

Request Method:POST

Status Code:200 OK

Remote Address:43.254.217.32:80

Referrer Policy:no-referrer-when-downgrade

Response Headers

view source

Cache-Control:no-cache

Connection:keep-alive

Content-Type:application/json;charset=UTF-8

Date:Tue, 14 Nov 2017 08:59:05 GMT

Server:kangle/3.4.8

Transfer-Encoding:chunked

X-Powered-By:nutz/1.r.60

Request Headers

view source

Accept:application/json, text/javascript, */*; q=0.01

Accept-Encoding:gzip, deflate

Accept-Language:zh-CN,zh;q=0.9

Cache-Control:no-cache

Connection:keep-alive

Content-Length:30

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

Cookie:JSESSIONID=37D60C1CC35604810C5020B5C4839D1F

Host:www.scpzlc.com

Origin:http://www.scpzlc.com

Pragma:no-cache

Referer:http://www.scpzlc.com/admin

User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36

X-Requested-With:XMLHttpRequest

Form Data

view source

view URL encoded

username:admin

password:123456

那么神奇, req.getParamter("username") 看看出啥

也是NULL,我在本地都可以打印出来,我上传到服务器就获取不到参数了

import org.nutz.mvc.annotation.Param;

我使用的是这个包

把 Ioc ioc, HttpServletRequest req 这两个参数去掉 就接收前面两个参数 试试可不可以

还是不行,这个太神奇了。我在本地都可以使用,部署到服务器上面都用不了

一样是req.getParamter

服务器上什么版本的tomcat?

但是这个接口用get 请求就可以获取到参数

直接tomcat对外吗? 是不是apache/nginx转发的?

把req的header打印一下看看输出啥

Accept:application/json, text/javascript, */*; q=0.01

Accept-Encoding:gzip, deflate

Accept-Language:zh-CN,zh;q=0.9

Cache-Control:no-cache

Connection:keep-alive

Content-Length:30

Content-Type:application/json; charset=UTF-8

Cookie:JSESSIONID=3CD6132CFDAF2E253CE1EEDDDE1281B0

Host:www.scpzlc.com

Origin:http://www.scpzlc.com

Pragma:no-cache

Referer:http://www.scpzlc.com/admin

User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36

X-Requested-With:XMLHttpRequest

Content-Type:application/json; charset=UTF-8

变了??

加上去就不一样了,不能这样改的,除非你前端也发json,然后@AdaptorBy(type=JsonAdaptor.class)

Accept:application/json, text/javascript, */*; q=0.01

Accept-Encoding:gzip, deflate

Accept-Language:zh-CN,zh;q=0.9

Cache-Control:no-cache

Connection:keep-alive

Content-Length:30

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

Cookie:JSESSIONID=3CD6132CFDAF2E253CE1EEDDDE1281B0

Host:www.scpzlc.com

Origin:http://www.scpzlc.com

Pragma:no-cache

Referer:http://www.scpzlc.com/admin

User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36

X-Requested-With:XMLHttpRequest

我改回去了

难道是这虚拟主机有什么防火墙???

这样,你在web.xml里面再配一个Filter, 放在NutFilter之前, 里面调用req.getParamter看看出啥

nutz

org.nutz.mvc.NutFilter

modules

com.scpz.MainModule

exclusions

/rs/*,/druid/*

public class AbcFilter implements Filter {

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

System.out.println(">?>>>>>>>>>>"+request.getParameter("username"));

System.out.println(">?>>>>>>>>>>"+request.getParameter("password"));

chain.doFilter(request, response);

}

}

abc

org.yyy.AbcFilter

abc

/*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值