51Testing软件测试论坛
标题:
求救!ajax函数返回值的关联
[打印本页]
作者:
wyh1987com
时间:
2011-3-2 11:27
标题:
求救!ajax函数返回值的关联
本帖最后由 wyh1987com 于 2011-3-3 09:02 编辑
现在在做一个类似邮件系统的项目,客户端发送一个带有scriptsessionid的请求,但搜索上文找不到服务端发送了这个id,后来才发现原来服务端是直接计算这个id再返回的,socket发送包的内容如下:
recv buf412 1024
"engine._sendData(batch); } }; dwr.engine.setPollMethod = function(type) { "
"dwr.engine.setPollType(type); }; dwr.engine.setMethod = function(type) { d"
"wr.engine.setRpcType(type); }; dwr.engine.setVerb = function(verb) { dwr.e"
"ngine.setHttpMethod(verb); }; dwr.engine.setPollType = function() { dwr.en"
"gine._debug(\"Manually setting the Poll Type is not supported\"); }; dwr.e"
"ngine._origScriptSessionId = \"1A5F25F719D5B9AA3D7C22E7EFD27D49\"; dwr.eng"
"ine._sessionCookieName = \"JSESSIONID\"; dwr.engine._allowGetForSafariButM"
"akeForgeryEasier = \"false\"; dwr.engine._scriptTagProtection = \"throw 'a"
"llowScriptTagRemoting is false.';\"; dwr.engine._defaultPath = \"/CsTelex/"
"dwr\"; dwr.engine._pollWithXhr = \"false\"; dwr.engine._scriptSessionId = "
"null; dwr.engine._getScriptSessionId = function() { if (dwr.engine._script"
"SessionId == null) { dwr.engine._scriptSessionId = dwr.engine._origScriptS"
"essionId + Math.floor(Math.random() * 1000); }
return dwr.engine._scriptSessionId
; }; dwr.engine._errorHandler = dwr.engine.defaultErrorHandler; dwr"
".e"
recv buf413 1024
"' :\r\n"
" columns = columns1;\r\n"
" break;\r\n"
" case 'autoNotice' :\r\n"
就是那句return dwr.engine._scriptSessionId应该进行参数化让客户端正确发送请求呢?
作者:
andyguo
时间:
2011-3-2 15:36
你用的什么协议录制的?
作者:
wyh1987com
时间:
2011-3-2 15:40
回复
2#
andyguo
socket录制的,系统在刷新邮件的页面中内嵌了ajax,服务器返回的scriptsessionid我找不到,所以客户端发送请求也无法关联
作者:
wyh1987com
时间:
2011-3-2 15:41
用web/HTML协议的URL BASED同样是这个问题,serve responce页面中找不到返回的scriptsessionid
作者:
msnshow
时间:
2011-3-2 21:12
这行不是么
ScriptSessionId = \"1A5F25F719D5B9AA3D7C22E7EFD27D49\";
作者:
wyh1987com
时间:
2011-3-3 09:01
回复
5#
msnshow
这个ID还要经过dwr.engine._scriptSessionId = dwr.engine._origScriptSessionId + Math.floor(Math.random() * 1000)处理后才是返回给客户端的ID
作者:
msnshow
时间:
2011-3-3 19:57
客户端收到的BUF是哪段
作者:
wyh1987com
时间:
2011-3-4 10:08
回复
7#
msnshow
一楼贴的就是接受的BUF吧,用了AJAX的方法,直接返回这段函数了,客户端接受这个包后,发出的请求包如下:
send buf494 931
"callCount=1\n"
"page=/CsTelex/telex/acars/omessage/omessageView.jsp\n"
"httpSessionId=<sessionid2>\n"
"scriptSessionId=D9D6F48C4C8AC485A94F8A47EDD3DED3742\n"
"c0-scriptName=OmessageTableManager\n"
"c0-methodName=findOutBoxTableList\n"
"c0-id=0\n"
"c0-e2=string:\n"
"c0-e1=Array:[reference:c0-e2]\n"
"c0-e4=string
ESC\n"
"c0-e3=Array:[reference:c0-e4]\n"
"c0-e6=number:0\n"
"c0-e5=Array:[reference:c0-e6]\n"
"c0-e8=number:20\n"
"c0-e7=Array:[reference:c0-e8]\n"
"c0-e10=string:\n"
"c0-e9=Array:[reference:c0-e10]\n"
"c0-e12=string:\n"
"c0-e11=Array:[reference:c0-e12]\n"
"c0-e14=string:\n"
"c0-e13=Array:[reference:c0-e14]\n"
"c0-e16=string:\n"
"c0-e15=Array:[reference:c0-e16]\n"
"c0-param0=Object_Object:{parm_s_selectedIds:reference:c0-e1, grid_sort_dat"
"eTime:reference:c0-e3, grid_page_start:reference:c0-e5, grid_page_size:ref"
"erence:c0-e7, grid_search_fields:reference:c0-e9, grid_search_query:refere"
"nce:c0-e11, grid_uxFilter_fields:reference:c0-e13, grid_uxFilter_query:ref"
"erence:c0-e15}\n"
"batchId=0\n"
这时候已经有了scriptsessionid了,是不是客户端自己处理了服务端返回的函数了呢?
作者:
hokage2000
时间:
2011-3-4 22:24
请问LZ,如果客户端发送不正确的scriptsessionid,会出现什么情况呢?
作者:
wyh1987com
时间:
2011-3-8 09:04
回复
9#
hokage2000
那段时用来刷新邮件的收件箱的,没发送正确ID就没有刷新成功了
作者:
wower1985
时间:
2011-3-10 17:17
如果你要做socket关联的话,请参看我的这篇文章
http://www.docin.com/p-72573998.html
作者:
zhouxiaowen
时间:
2011-3-10 20:56
我感觉自己还是个菜鸟,LR。好郁闷啊!
作者:
violet0214
时间:
2011-8-5 13:06
还是没能解决问题
作者:
Old々Man
时间:
2011-12-15 16:49
今天我也碰到这个问题,其实在DWR在每个SUBMIT前都会有一个请求将ScriptSessionID获得,然后再再后面用Math生成随机数,只需要每次SUBMIT前获取这个值加上LR的RND数字就可以了
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2