javascript - jQuery 序列化时出现 Safari JSON 错误

标签 javascript jquery ajax json safari

我在 Safari 中遇到了一个奇怪的错误。

提交时:我正在使用 jQuery.serialize(); 序列化我提交的表单数据。

从那里,我使用 AJAX 将其发送到脚本。这在 Chrome 和 Firefox 中效果很好,但 Safari 提示 JSON 格式无效。

这是 .on('submit'...) 函数:

jQuery('form#header-register').on('submit', function(e) {
     e.preventDefault();

     var userData = jQuery(this).serialize();

     jQuery.ajax({
        type: "POST",
        url: ajaxurl,
        dataType: 'json',
        data: {"action": "user-register", userData},
        success: function(data) {
            if(data === 1) {    
                wpUserLoggedIn = 1;
            } else {
                console.log(data);
                wpUserLoggedIn = 0;
            }
        }
    });
});

来自 Safari 的错误是: 语法错误:意外的标记“}”。属性名称“userData”后面应有“:”。

此错误会阻止页面上的其他脚本触发。是否有另一种方法来序列化适用于 Safari 的表单数据?

操作放在隐藏的表单字段中并通过序列化传递它会更聪明吗?

最佳答案

也许可以尝试一下:

data: {"action": "user-register", "userData": userData},

因为它提示没有看到 :

我猜其他浏览器本身也暗示了这一点

关于javascript - jQuery 序列化时出现 Safari JSON 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993345/

相关文章:

javascript - 检查两个物体是否发生碰撞和减速的最有效方法是什么?

javascript - TinyMCE.dom.Event.add 的最佳替代品是什么?

javascript - 检查是否安装了字体

javascript - jquery如何使用子元素id获取父元素的类?

java - ajax 更新中删除了 Wicket 表单更改

javascript - 如何在不丢失属性的情况下更改元素标签

jquery - 删除类(class)后如何过渡到工作?

jquery - 在页面加载时保持树状菜单打开

javascript - ajax 将帖子加载为整页幻灯片

javascript - 如何使用 Dojo 1.7.5 将使用 dojo Uploader 选择的文件发布到 servlet