0

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') + '&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;
   }
 });
}

この構文エラーの意味と修正方法を教えてください。

注: 私は Business Catalyst と呼ばれる CMS を使用しておりFormProcessV2Response、そのシステムの一部です。

4

2 に答える 2

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

する必要があります

url: $f.attr('action') + '&JSON=1'

これにより、実際に JSON が返されます。&amp;HTML でのみ使用します — リンク属性などからこれをコピーした可能性があります。

また、jQuery を使用しているため、 を使用する代わりに を使用evalできます$.parseJSON。または、オプションを設定dataType: 'json'してそのまま使用することをお勧めします。(そして、そうでなかったとしても、それでも望ましいでしょう。)$.ajaxmsgJSON.parse

于 2013-06-30T21:10:57.093 に答える
1

サーバーの応答には、JSON ではなく HTML が含まれています。JSON は JavaScript のサブセットであるため、JSON を評価します。HTML は評価できません。有効な JavaScript ではありません。

于 2013-06-30T21:12:41.933 に答える