项目中使用到Ajax异步请求,可是在后台一直接收不到传过来的参数。分析了一下请求方法,觉得问题出在参数上。先看下方法:
jQuery.get(url,[data],[callback])
返回值:XMLHttpRequest
参数url (String) :请求路径
data (Map) : (可选) 待发送 Key/value 参数。
callback (Function) : (可选) 载入成功时回调函数。
再来看看我的写法:
function send(){ $.get("http://www.shelwee.com/test.jsp",getstr(),funtion(data){ alert(data); }); } function getstr(){ var str = "{"; str += "id:1,"; str += "name:'ShelWee'"; str += "}"; return str; }
使用这种方式在后台是接收不到数据的,因为getstr()方法返回的是一串字符串,而ajax请求数据参数data是json格式,因此需要将getstr()返回的字符串转成json格式再传送。
所以再增加一个字符串转json的方法str2Json(),将getstr()所返回的字符串传到send()方法中的请求。
funtion str2Json(str){ return eval('('+ str +')'); }
将send()方法修改一下即可:
function send(){ $.get("http://www.shelwee.com/test.jsp",str2Json(getstr()),funtion(data){ alert(data); }); }
这时后台便可成功接收到参数。