首页 > 编程知识 正文

谷歌浏览器会跳到别的浏览器,支付宝页面无权跨域调用

时间:2023-05-03 18:46:11 阅读:48466 作者:4707

在此,必须使用相同的域名访问部署在不同服务器上的项目。 使用nginx反向代理时,反向代理会导致AJAX跨域请求问题。

ajax无法请求服务器数据以获取当前会话。 手机UC、微信和支付宝(Alipay )内置浏览器返回错误信息

{'readyState':0、' responseText': '、' status':0、' statusText':'error'}网上有许多解决方法

创建//筛选器,并在response中添加headerpublicclasscorsfilterimplementsfilter { publicvoiddofilter (servletrequestreq,servlet response ) filterchainchain (throwsioexception,servlet exception (httpservletresponseresponse=(http servlet response ) res ); response.setheader (' access -控制- allow-origin ',' * '; response.setheader (访问控制多种方法)、) POST、GET、OPTIONS、DELETE ); response.setheader (' access -控制- max-age ',' 3600 ' ); response.add header (访问控制- allow-headers ),Origin,X-Requested-With,Content-Type,Accept ) ) rerequested charset=UTF-8 '; chain.dofilter(req,res ); ) public void init (filterconfigfilterconfig ) ({} public void destroy ) )经过测试,谷歌浏览器没有问题。 火狐和手机的UC浏览器、微信内置浏览器、支付宝(Alipay )内置浏览器不行。

于是我又搜索了各种各样的ing……

最终找到了解决办法。 我在使用jquery的ajax请求。 在ajax中添加xhrFields字段

$.Ajax(datatype:'JSON ',url : url,type : 'POST ',timeout : 60000, 添加xhrFields //以确保withcredentiaaax ajax为xhr fields : { with credentials : true }、cache: false、data 3360数据参数, 经过允许跨域请求success3360function{data}的测试,谷歌浏览器没有问题,火狐浏览器也没有问题,但手机UC浏览器、微信内置浏览器、支付宝(Alipay )

我的研究实验表明,手机内置浏览器的域间验证很严格,不支持适配器方式。

//由于此设置,UC、微信和支付宝(Alipay )的内置浏览器匹配项【*】response.setheader (' access-control-allow-origin )、' * ' //需要更明确的Origin地址,如果更改为您的请求域名,则为response.setheader (access-control-allow-origin )、' https://www.example 再次对手机UC浏览器进行实验,微信内置浏览器,支付宝(Alipay )内置浏览器,跨域请求成功。

网络上的方法说明很简单,不全面。 另外,虽然PC端的浏览器可以正常使用,但是也有很多问题是手机端的浏览器不能拜托你。 我想是和我一样的问题,希望在这里记录解决方法,对更多的人有帮助。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。