博客
关于我
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 insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目...
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    mysql jdbc连接url参数rewritebatchedstatements=true
    查看>>
    Mysql join原理
    查看>>
    MySQL JOIN原理
    查看>>
    MySQL Join算法与调优白皮书(二)
    查看>>
    MySql LAST_INSERT_ID 【插入多条数据时】
    查看>>
    mysql merge表合表时遇到的问题(一) 无法添加数据
    查看>>
    Mysql MVCC精简
    查看>>
    Mysql MyISAM 压缩(前缀压缩)索引
    查看>>
    Mysql order by与limit混用陷阱
    查看>>
    Mysql order by与limit混用陷阱
    查看>>
    mysql order by多个字段排序
    查看>>
    MySQL Order By实现原理分析和Filesort优化
    查看>>
    mysql problems
    查看>>
    mysql replace first,MySQL中处理各种重复的一些方法
    查看>>
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    查看>>
    mysql replace用法
    查看>>
    Mysql Row_Format 参数讲解
    查看>>
    mysql select as 多个_MySQL 中 根据关键字查询多个字段
    查看>>