我正在使用jQuery.ajax函数将表单发布到服务器。除了表单中的某些输入字段包含某些特定字符组合(例如&#(& @ works fine))之外,代码运行良好。
下面是我们用来提交表单的代码:
function formSubmit(formToPost, postUrl, onSuccess) {
console.debug("formSubmit");
$.ajax({
type: 'POST',
url: postUrl,
data: $('#' + formToPost).serialize(),
success: onSuccess
}).fail(function (jqXHR, textStatus, errorThrown) { console.debug("error: " + textStatus + ", " + errorThrown); });
}
当我尝试在其中一个输入字段中提交带有&#的表单时返回的错误是“内部服务器错误”而没有任何详细信息。
有关如何解决此问题的任何建议?
答案 0 :(得分:0)
我认为这可能有效。这基本上是在表格数据序列化后的decodeURI。
function formSubmit(formToPost, postUrl, onSuccess) {
console.debug("formSubmit");
$.ajax({
type: 'POST',
url: postUrl,
data: decodeURI($('#' + formToPost).serialize()),
success: onSuccess
}).fail(function (jqXHR, textStatus, errorThrown) { console.debug("error: " + textStatus + ", " + errorThrown); });
}