Javascript JS语法错误:DOCTYPE html

Javascript JS语法错误:DOCTYPE html,javascript,ajax,forms,jquery,Javascript,Ajax,Forms,Jquery,我有一个表单正在通过AJAX提交。单击“提交”时,会出现语法错误: SyntaxError: syntax error [Break On This Error] <!DOCTYPE html> 以下是完整的AJAX代码: function jqsub() { var $f = $('#email-form'); var $m = $('#success-message'); $.ajax({ type: 'POST', url: $f.attr('actio

我有一个表单正在通过AJAX提交。单击“提交”时,会出现语法错误:

SyntaxError: syntax error
[Break On This Error]   
   <!DOCTYPE html>
以下是完整的AJAX代码:

function jqsub() {

var $f = $('#email-form');
var $m = $('#success-message');
$.ajax({
  type: 'POST',
  url: $f.attr('action') + '&amp;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;
   }
 });
}
函数jqsub(){
var$f=$(“#电子邮件表单”);
var$m=$(“#成功消息”);
$.ajax({
键入:“POST”,
url:$f.attr('action')+’和JSON=1',
数据:$f.serialize(),
成功:功能(msg){
var formResponse=eval(msg);
if(formResponse.FormProcessV2Response.success){
$f.淡出();
$m.fadeIn().html(“感谢您加入我们的邮件列表。

”); } }, 错误:函数(msg){ 警报('错误'+消息); 返回false; } }); }
这个语法错误是什么意思?我如何修复它

注意:我使用的是一个名为Business Catalyst的CMS,
FormProcessV2Response
是他们系统的一部分

url: $f.attr('action') + '&amp;JSON=1'
应该是

url: $f.attr('action') + '&JSON=1'
这将使它实际返回JSON。您只使用
&在HTML中-您可能已从链接属性或其他内容复制了此内容

另外,由于您使用的是jQuery,因此可以使用
$.parseJSON
而不是
eval
。或者更好的方法是,在
$.ajax
选项中设置
dataType:'json'
,然后按原样使用
msg
!(即使你不是这样,
JSON.parse仍然更可取。)

应该是

url: $f.attr('action') + '&JSON=1'
这将使它实际返回JSON。您只使用
&在HTML中-您可能已从链接属性或其他内容复制了此内容


另外,由于您使用的是jQuery,因此可以使用
$.parseJSON
而不是
eval
。或者更好的方法是,在
$.ajax
选项中设置
dataType:'json'
,然后按原样使用
msg
!(即使您不是,也最好使用JSON.parse。)

服务器的响应包含HTML,而不是JSON。您评估JSON是因为JSON是JavaScript的子集。无法评估HTML,它不是有效的JavaScript。

服务器的响应包含HTML,而不是JSON。您评估JSON是因为JSON是JavaScript的子集。您无法评估HTML,它不是有效的JavaScript。

这意味着
msg
不是有效的JavaScript。为什么要使用
eval
呢?这意味着
msg
不是有效的JavaScript。你为什么要使用
eval
呢?我该如何使用
$.parseJSON
?JS不是我最好的领域。谢谢你的帮助和建议@林达:
var formResponse=$.parseJSON(msg):)我将如何使用
$.parseJSON
?JS不是我最好的领域。谢谢你的帮助和建议@林达:
var formResponse=$.parseJSON(msg):)事实证明,Business Catalyst返回的是HTML而不是JSON,这是由于其模块中的一个错误。所以你是对的。谢谢事实证明,BusinessCatalyst返回的是HTML而不是JSON,这是由于其模块中的一个错误。所以你是对的。谢谢