-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ajax post 请求丢失 body #41
Comments
ajax post请求的body怎么会丢失呢?你做什么操作了吗? |
WKWebView 只要注册了 http 拦截,ajax body 就会丢失的。 你这个是native代码上把body放在了请求头上,然后通过请求头取出之前的body,这个没有问题,但是这个是首次同步请求,不是异步的ajax请求,如果也想异步ajax请求不丢失body,那H5侧也需要把body放在请求头里才行,只是这样让H5侧处理比较麻烦。另外的话,请求头不适合放很长的数据,会有限制。 |
|
所以针对问题本身,是会丢失 ajax body的。 |
对,本来想hook ajax请求来着,但是忙没时间自测,不能上。 有个曲线救国的方案,这个库提供了JSBridge,可以让h5到native来拿数据,拿到数据之后放到body里再发ajax请求。 |
恩,我也在写hook ajax,还在调试中,确实还需要大量测试。你刚说的曲线救国,最终还是会回到 ajax,那body还是会丢失的。 |
不会啊,这个方案我已经在用了。 |
恩,懂你意思,那你这样就需要 H5 去增加代码来支持把数据先给native了,或者是简单的 hook ajax send 方法,把body传给 native保存起来,然后端上真正在发送数据时,把之前保存的body取出来,继续发送 ajax 请求。 |
//获取bodyParam
NSString *bodyParam = request.allHTTPHeaderFields[@"bodyParam"];
NSData *bodyData =[bodyParam dataUsingEncoding:NSUTF8StringEncoding];
newRequest.HTTPMethod = @"POST";
newRequest.HTTPBody = bodyData;
代码中这段,只是解决首次请求的body丢失问题。
The text was updated successfully, but these errors were encountered: