Closed karosLi closed 5 years ago
ajax post请求的body怎么会丢失呢?你做什么操作了吗?
ajax post请求的body怎么会丢失呢?你做什么操作了吗?
WKWebView 只要注册了 http 拦截,ajax body 就会丢失的。 你这个是native代码上把body放在了请求头上,然后通过请求头取出之前的body,这个没有问题,但是这个是首次同步请求,不是异步的ajax请求,如果也想异步ajax请求不丢失body,那H5侧也需要把body放在请求头里才行,只是这样让H5侧处理比较麻烦。另外的话,请求头不适合放很长的数据,会有限制。
ajax post请求的body怎么会丢失呢?你做什么操作了吗?
WKWebView 只要注册了 http 拦截,ajax body 就会丢失的。 你这个是native代码上把body放在了请求头上,然后通过请求头取出之前的body,这个没有问题,但是这个是首次同步请求,不是异步的ajax请求,如果也想异步ajax请求不丢失body,那H5侧也需要把body放在请求头里才行,只是这样让H5侧处理比较麻烦。另外的话,请求头不适合放很长的数据,会有限制。
ajax post请求的body怎么会丢失呢?你做什么操作了吗?
WKWebView 只要注册了 http 拦截,ajax body 就会丢失的。 你这个是native代码上把body放在了请求头上,然后通过请求头取出之前的body,这个没有问题,但是这个是首次同步请求,不是异步的ajax请求,如果也想异步ajax请求不丢失body,那H5侧也需要把body放在请求头里才行,只是这样让H5侧处理比较麻烦。另外的话,请求头不适合放很长的数据,会有限制。
所以针对问题本身,是会丢失 ajax body的。
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请求。
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还是会丢失的。
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还是会丢失的。
不会啊,这个方案我已经在用了。
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丢失问题。