jQuery.ajax Uncatch SyntaxError: 意外标识符

jQuery.ajax Uncaught SyntaxError: Unexpected identifier

本文关键字:意外 标识符 SyntaxError ajax Uncatch jQuery      更新时间:2023-09-26

所以我收到这个错误,不知道为什么:

jQuery.ajax Uncaught SyntaxError: Unexpected identifier

我正在尝试将有关客户的一些信息解析为FTP服务器主目录中名为"pricealarm.php的另一个文件

<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery("#pricealarm-fakeSubmit").click(function(){
      if (jQuery('input[name="pa[offer]"]').val().length > 0 && jQuery('input[name="pa[email]"').val().length > 0 && jQuery('input[name="pa[name]"').val().length > 0 && jQuery('input[name="c_mac"]').val().length > 2 ) {
        //Parsing der Eingegebenen Information in die Datenbank (eigentliches Prozedere in pricealarm.php)
        var parse = {
          currency: jQuery('input[name="pa[currency]"]').val(),
          price: jQuery('input[name="pa[price]"]').val(),
          offer: jQuery('input[name="pa[offer]"]').val(),
          email: jQuery('input[name="pa[email]"]').val(),
          phone: jQuery('input[name="pa[phone]"]').val(),
          name: jQuery('input[name="pa[name]"]').val(),
          product: jQuery('input[name="pa[product]"]').val(),
          variant: jQuery('input[name="pa[variant]"]').val(),
          productID: jQuery('input[name="pa[productID]"]').val(),
          oxArtID: jQuery('input[name="pa[oxArtID]"]').val(),
          shopID: jQuery('input[name="pa[shopID]"]').val() 
        };
        jQuery.ajax(
        {
          type: 'POST',
          url: 'pricealarm.php',
          data: parse,
          success: function() {console.info(parse) },
          error: function() {console.info('pricealarm couldnt parse the data')}
        });
        return false;
    }
    else{
      jQuery('#pricealarm-fakeSubmit')after('<span class="js-oxError_notEmpty">[{ oxmultilang ident="ERROR_MESSAGE_INPUT_NOTALLFIELDS" }]</span>');
    }         
    });
  });
</script>

编辑:更新了代码以适应建议。仍然不工作编辑2:发现错误x.x

编辑:我在整个代码示例发布之前提供了这个答案。其中一些仍然相关。


我认为您错误地定义了回调函数。它们应该是一个函数对象;事实上,他们正在立即执行。尝试:

  jQuery.ajax({
      type: 'POST',
      url: 'pricealarm.php',
      data: parse,
      success: function() {
          console.info(parse);
      },
      error: function() {
          console.info('pricealarm couldn`t parse the data');
      }
  });

另外,请确保您使用的是理解console.info的浏览器。或者 - 这是我个人的偏好 - 使用新的jQuery Promise方法进行回调:

  jQuery.ajax({
      type: 'POST',
      url: 'pricealarm.php',
      data: parse,
  }).done(function() {
      console.info(parse);
  }).fail(function() {
      console.info('pricealarm couldn`t parse the data');
  });

最后,我不完全确定这一点,但错误字符串中的反引号 (') 可能会导致问题。它们是 ECMAScript 6 中提出的模板语法的一部分,某些浏览器已经支持该语法。

我自己发现了错误:

 else{
  jQuery('#pricealarm-fakeSubmit')after('<span class="js-oxError_notEmpty">[{ oxmultilang ident="ERROR_MESSAGE_INPUT_NOTALLFIELDS" }]</span>');
} 

after之前错过了.

 else{
  jQuery('#pricealarm-fakeSubmit').after('<span class="js-oxError_notEmpty">[{ oxmultilang ident="ERROR_MESSAGE_INPUT_NOTALLFIELDS" }]</span>');
}