来自jQuery序列化的Safari JSON错误

时间:2015-08-13 16:07:59

标签: 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的错误是: SyntaxError: Unexpected token '}'. Expected a ':' following the property name 'userData'.

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

action置于隐藏的表单字段中并将其传递给序列化是否更明智?

1 个答案:

答案 0 :(得分:1)

也许试试:

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

因为它抱怨没有看到:

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