JS语法错误:DOCTYPE html
JS Syntax Error: DOCTYPE html
我有一个通过AJAX提交的表单。当我点击提交时,它会给我一个语法错误:
SyntaxError: syntax error
[Break On This Error]
<!DOCTYPE html>
它引用了第31行,这是一行代码:
var formResponse = eval(msg);
以下是完整的AJAX代码:
function jqsub() {
var $f = $('#email-form');
var $m = $('#success-message');
$.ajax({
type: 'POST',
url: $f.attr('action') + '&JSON=1',
data: $f.serialize(),
success: function(msg) {
var formResponse = eval(msg);
if (formResponse.FormProcessV2Response.success) {
$f.fadeOut();
$m.fadeIn().html('<p>Thank you for joining our mailing list.</p>');
}
},
error: function(msg) {
alert('error'+msg);
return false;
}
});
}
这个语法错误是什么意思?我该如何解决这个问题?
注意:我使用的是一个名为Business Catalyst的CMS,FormProcessV2Response
是他们系统的一部分。
url: $f.attr('action') + '&JSON=1'
应该是
url: $f.attr('action') + '&JSON=1'
这将使它实际返回JSON。您只在HTML中使用&
——您可能已经从链接属性或其他内容复制了它。
此外,由于您使用的是jQuery,所以您可以使用$.parseJSON
而不是eval
。或者更好的做法是,在$.ajax
选项中设置dataType: 'json'
,并按原样使用msg
!(即使你没有,JSON.parse
仍然是最好的。)
服务器的响应包含HTML,而不是JSON。您评估JSON是因为JSON是JavaScript的一个子集。您无法评估HTML,它不是有效的JavaScript。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 将所有访问过的网站颜色重置为所有最新浏览器和所有doctype(xhtml,html,html5)的默认颜色css设置
- 把手包裹<!DOCTYPE html>
- 未捕获的语法错误:意外的标记<在<!DOCTYPE html>
- 中心未定义-<!DOCTYPE html>错误
- 当使用doctype html时,skrollr在ipad上不起作用
- Javascript在<!doctype html>以正确的格式插入时不起作用
- 如何替换html中的doctype
- Javascript无法使用doctype html
- 代码在以下情况下不起作用:<!DOCTYPE html>顶部
- 可以't重写<选项>当<!DOCTYPE html>目前
- JS语法错误:DOCTYPE html
- Html Doctype标签影响javascript
- & lt; !doctype html>向后兼容性
- Doctype影响html/body/canvas的宽度和高度
- 当<!DOCTYPE html>添加到JSP页面
- 未捕获的SyntaxError: Unexpected token <转换成DOCTYPE html PUBLIC
- 和. clienttheight JavaScript
- 在动态html页面中引入另一种Doctype