自动生成Form表单提交在苹果浏览器中的注意事项

news2024/9/23 7:31:34

以下是本人在公司旧系统中看到的该段代码

function Post(URL, PARAMTERS) {
    //创建form表单
    var temp_form = document.createElement("form");
    temp_form.action = URL;
    //如需打开新窗口,form的target属性要设置为'_blank'
    temp_form.target = "_blank";
    temp_form.method = "post";
    temp_form.style.display = "none";
    //添加参数
    for (var item in PARAMTERS) {
        var opt = document.createElement("textarea");
        opt.name = PARAMTERS[item].name;
        opt.value = PARAMTERS[item].value;
        temp_form.appendChild(opt);
    }
    document.body.appendChild(temp_form);
    //提交数据
    $(temp_form).attr('action', URL + "?" + $(temp_form).serialize()); //解决iPhone无法post表单的问题 【对此,博主见解:该办法其实不是个好办法,不能超过Url地址长度的限制,另外敏感数据也有暴露隐忧,不建议采用】
    temp_form.submit();
}

代码中针对苹果Safari浏览器弹窗Submit表单后后台无法获取表单数据的问题,以通过Url暴露表单内容的方法解决,这不是个好的方案。

参考 https://pweb123.com/html/php/784.html 

该问题实际是Safari浏览器针对自动弹窗提交数据的安全机制造成的,如果 form.target改用“_self” 或者 在HTML页面表单以type="submit"按钮人为手动单击提交,应该不存在该问题;然而我们是希望不改变原页面的情况下自动生成表单提交,因此不可在本页中用“_self”,如果单纯想提交数据非必须弹新窗口,可以结合利用 iframe ,创建一个隐藏的iframe在其中以target为_self提交Form,即可解决问题,或者就只是使用Ajax也可以提交FormData

参考 https://stackoverflow.com/questions/46727106/javascript-form-submit-doesnt-work-in-safari 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1202057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java: 实现电影信息管理系统 (javaBean)

文章目录 电影信息系统1. 将JavaBean数据类封装好2.业务逻辑类3.测试类(main函数类) 电影信息系统 需求: 展示系统中的全部电影(每部电影展示、名称、平分)。允许用户根据电影编号(id)查询出某…

火山引擎 DataLeap 计算治理自动化解决方案实践和思考

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 【导读】本文旨在探讨火山引擎 DataLeap 在处理计算治理过程中所面临的问题及其解决方案,并展示这些解决方案带来的实际收益。主要内容包括:…

使用 Electron 来替代本地调试线上代理的场景

Cookie Samesite 问题 https://developers.google.com/search/blog/2020/01/get-ready-for-new-samesitenone-secure?hlzh-cnhttps://www.chromium.org/updates/same-site/https://github.com/GoogleChromeLabs/samesite-exampleshttps://releases.electronjs.org/releases/s…

Labview实现wav音乐播放

准备音频文件:将要播放的声音文件准备好,是.wav格式。 图形化如下: 内部逻辑如下:

名师助阵龙讯旷腾PWmat+半导体缺陷培训暨半导体缺陷计算大赛

半导体缺陷计算大赛 选拔赛截止日期:11月23日 参与杭州线下培训直接跳过选拔赛 大赛亮点 线上免费培训、线下限时领取免费名额 线下杭州培训可直通决赛,跳过选拔赛 线上培训有3次机会参与考试进入决赛 已购/未购用户均可参加、无身份限定 使用Mc…

新程出海:TikTok电商带货的6大注意事项

当下,越来越多的商家借助海外抖音TikTok平台实现电商带货。但是,由于海外市场和文化环境的不同,如果没有正确的操作方法和注意事项,会存在诸多问题和挑战。因此,接下来新程出海为您介绍海外抖音TikTok电商带货的注意事…

大数据-之LibrA数据库系统告警处理(ALM-12041 关键文件权限异常)

告警解释 系统每隔一个小时检查一次系统中关键目录或者文件权限、用户、用户组是否正常,如果不正常,则上报故障告警。 当检查到权限等均正常,则告警恢复。 告警属性 告警ID 告警级别 可自动清除 12041 严重 是 告警参数 参数名称 …

mysql 中with的用法(1)

mysql 中with的用法 1、案例一: 建表: CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),salary INT );INSERT INTO employees (employee_id, first_name, last_name, salary) VALUES (1, John, Do…

Springboot+vue的人力资源管理系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的人力资源管理系统(有报告)。Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的企业资产管理系统,采用M(model&…

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑 引言 在最新的消息中,JetBrains团队宣布Kotlin Multiplatform(KMP)将于2023年10月稳定发布。这一消息对于广大开发者来说毫无疑问是一个令人振奋的消息。KMP的正式生…

【Java】集合(一)单列集合List

1.集合 可以动态保存任意多个对象,并提供了一系列的操作对象的方法:add、remove、set、get等。 2.集合框架体系 分为两大类: 单列集合和双列集合 3.List接口基本介绍 List接口是Collection接口的子接口 List集合类中元素有序&#xff0…

2024京津冀人工智能展会(世亚智博会)展现“中国智造”高端技术

2024京津冀人工智能展会(简称:世亚智博会)已正式定档2024年6月28-30日,将启用北京亦创会展中心的一层全部展厅,预计展出面积达6万平方米,吸纳全球超过800家展商,展现“中国智造”的尖端理念与高端技术&…

制作企业期刊的网站,小白也能做出超吸睛的期刊

制作企业期刊的网站,对于许多企业来说,是一项既重要又具有挑战性的任务。然而,如果你是一位初学者或者是一位小白,也不用过于担心。按照小编说的步骤去做,你也能制作出吸引人的电子期刊 首先,你需要选择一个…

操作系统(三)进程和线程的基础知识

文章目录 前言进程和线程进程进程的状态进程控制块(PCB,Process Control Block)进程的上下文切换 线程线程的实现 进程加载进程等待和退出等待退出 优先级控制进程调试支持定时 小结 前言 本文主要涉及操作系统的简介、硬件结构、内存管理、进程管理、文件系统、设…

【Proteus仿真】【STM32单片机】停车场车位管理系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用按键、LED、蜂鸣器、LCD1602、红外传感器、74HC595模块等。 主要功能: 系统运行后,LCD1602显示进入、驶出、剩余车位数…

什么是光电耦合器?如何选择型号及种类

光电耦合器(英文缩写为OC)亦称光电隔离器,简称光耦;以光为媒介传输电信号;它对输入、输出电信号有良好的隔离作用,是目前种类最多、用途最广的光电器件之一;所以,它在各种电路中得到广泛的应用。 光耦合器…

使用 `open-uri.with_proxy` 方法打开网页

Ruby 爬虫程序如下: require open-uri require nokogiri# 定义代理信息 proxy_host jshk.com.cn# 定义要爬取的网页 URL url http://www.example.com# 使用代理信息打开网页 open-uri.with_proxy(proxy_host, proxy_port) do |proxy|# 使用 Nokogiri 库解析网页内…

uniapp h5发行

前端使用uniapp开发项目完成后,需要将页面打包,生成H5的静态文件,部署在服务器上。 这样通过服务器链接地址,直接可以在手机上点开来访问。 打包全步骤如下: 首先在manifest.json文件中进行基础配置,获取…

Windows电脑训练 RT-DETR 改进算法 (Ultralytics) 教程,改进RTDETR算法(包括使用训练、验证、推理教程)

手把手从零开始训练 RT-DETR 改进项目 (Ultralytics版本) 教程,改进RTDETR算法 本文以Windows服务器为例:从零开始使用Windows训练 RT-DETR 算法项目 《芒果剑指 RT-DETR 目标检测算法 改进》 适用于芒果专栏改进RT-DETR算法 文章目录 百度 RT-DETR 算法介绍改进网络代码汇…

【ATTCK】MITRE Caldera-插件

CALDERA是一个由python语言编写的红蓝对抗工具(攻击模拟工具)。它是MITRE公司发起的一个研究项目,该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的,能够较真实地APT攻击行为模式。 通过CALDERA工具,安全…