session图片验证码,页面和请求是两个地址。android手机好用,iphone 失效。

问题描述:之前在H5页面用session做了一个验证码。安卓手机好使。但是到苹果就不好使了(页面访问是一个域名地址,ajax请求是用另外的一个ip地址)。

   详细说明: 验证码请求后台图片正常显示,android、ios都可以。但是输入验证码到后台进行与图片的验证码数字校验 时,android 可以正常校对,ios会产生一个新的session,所以获取不到信息。用IOS 微信 和外部QQ浏览器 都不好使;

              问:请求用的是域名还是ip? 

     答:ajax 里面是IP 

     注意:这时的两个web请求不是同一个域名。

       1、 验证码显示如: 

        

         2、 后台代码:

                       跨域设置:

                                

                              

                               

                               

 

       最后是如何解决的呢?

         因为请求和应用本身不是同一个web应用,加上safari机制导致两次ajax请求有两个session  ,不是同一个session,所以验证码取不到      

         解决方案一(好使):有一种简单的方式可以绕过去,在原页面(网页浏览器域名路径)的域名上加个子域名映射映射到(ajax请求的ip),然后 

    ajax请求使用这个映射的子域名访问。

              这里要注意:原来可能不好使的手机需要清理下缓存重新测试!

 

    不好使的方案:直接把现有的ip改成域名

    其他不建议的方案:这里的小条是请求的页面域名,欠条是ajax请求的ip地址路径

                           

        页面请求如下:

       

 

 

 

                                           

 

posted @   _Phoenix  阅读(665)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示