我在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
置于隐藏的表单字段中并将其传递给序列化是否更明智?
答案 0 :(得分:1)
也许试试:
data: {"action": "user-register", "userData": userData},
因为它抱怨没有看到:
我猜其他浏览器本身也暗示了这一点