博客
关于我
ajax异步提交失败
阅读量:655 次
发布时间:2019-03-15

本文共 877 字,大约阅读时间需要 2 分钟。

关于AJAX表单提交在Chrome浏览器中的问题

在项目开发中,我们遇到一个需要重点解决的技术问题:AJAX异步提交表单时,由于Chrome浏览器的安全策略限制,本地资源无法正常访问,导致表单提交失败。症状包括لماتDebugาส仮機,豹子提示“action找不到”,但直接访问URL则正常登录后台。

原因分析

  • 浏览器安全策略限制

    Chrome浏览器对本地 AJAX 资源访问实施了安全限制。这种限制会影响某些 AJAX 请求的正常运行,尤其是在跨多域(CORS)请求时更加明显。

  • 服务器配置检查

    • 确认后台地址是否正确,URI 路径配置无误。
    • 检查服务器权限设置,确保相关端点允许 CORS 请求。
    • 查看 Tomcat 集群配置,排除跨域请求被拦截的可能性。
  • AJAX 提交重构

    尝试将 AJAX 请求转换为 fetching 调用,或者改用 Fetch API,减少浏览器主线程占用。

  • 解决方案

  • 服务器配置优化

    配置 Tomcat 的 CORS 锁,允许前端域名和后台域名的跨域请求。修改 catalina geopolitical.classpath 文件,添加允许的原点。

  • 跨域请求处理

    使用 CORS Middlewar 中间件,自动处理跨域请求。或者手动设置 header,明确指定允许访问的域名。

  • AJAX 请求重构

    考虑将 AJAX 提交改为 fetch(), 使用 async/await 架assisически,提升请求兼容性。同时,减少异步操作对主线程的占用,提升页面体验。

  • 安全策略绕过

    暂时解决方案,设置 Chrome 浏览器的 Local Resource 限制。可以通过 chrome://flags 调试,尝试解锁本地资源访问。

  • 显式跨域设置

    在 HTML 头部添加 Cross-Origin-Opener-Policy: same-origin,强制让某些请求保留原有域名,避免跨 xdr 调用方式。

  • 建议在正式环境中优化服务器设置,并制定统一的跨域策略。随着应用版本发布,逐步验证各项变更效果,确保金蝶协同稳定运行。

    转载地址:http://lckmz.baihongyu.com/

    你可能感兴趣的文章
    mysql default unix_timestamp(now())
    查看>>
    mutiplemap 总结
    查看>>
    MySQL DELETE 表别名问题
    查看>>
    Mutual Training for Wannafly Union #8 D - Mr.BG Hates Palindrome 取余
    查看>>
    MySql DML语言新增多行数据、修改删除多个表
    查看>>
    MUX VLAN (Multiplex VLAN) 提供了一种通过 VLAN 进行网络资源控制的机制
    查看>>
    mysql docker远程备份数据库_docker环境下数据库的备份(postgresql, mysql) 实例代码
    查看>>
    MVC 301重定向(永久重定向不带www域名到带www的域名)
    查看>>
    Mysql Dump命令
    查看>>
    Mvc Action可以通过jsonp方式调取
    查看>>
    mysql ERROR 1396 (HY000): Operation CREATE USER failed 解决办法
    查看>>
    MVC aspx
    查看>>
    MySQL Error Handling in Stored Procedures---转载
    查看>>
    MVC HtmlHelper用法大全
    查看>>
    mysql er进制包安装_MySQL二进制包安装简略过程
    查看>>
    MVC jsp+servlet+javabean 连接Mysql数据库測试demo
    查看>>
    mysql explain关键字执行计划表解析系列一
    查看>>
    Mvc Session 设置以后再构造函数中取值时为null问题
    查看>>
    mysql explain字段含义
    查看>>
    MVC 区域功能
    查看>>