You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

语法错误求助:success is not a function问题及代码排查

解决jQuery Ajax中"success is not a function"的报错问题

嘿,这个问题我之前踩过坑——核心原因是jQuery版本的兼容性问题!

你遇到的success is not a function错误,是因为从jQuery 3.0版本开始,官方废弃并移除了.success()、.error()、.complete()这类链式回调方法,转而推荐使用Promise风格的.done()、.fail()、.always(),或者直接将回调函数写在$.ajax的配置参数里。

GitHub上的示例代码大概率是基于旧版本jQuery(比如1.x或2.x)编写的,所以当时.success()是合法的语法,但放到新版本jQuery环境里就会报错。

给你两个可行的修复方案:

方案1:改用Promise风格的.done()替代.success()

$.ajax({ 
  url: '{{ route('braintree.token') }}' 
}).done(function (response) { 
  braintree.setup(response.data.token, 'dropin', { 
    container: 'dropin-container', 
    onReady: function () { 
      $('#payment-button').removeClass('hidden'); 
    } 
  }); 
});

方案2:将success回调直接写入$.ajax配置对象

这是兼容性更广的写法,无论新旧jQuery版本都能正常工作:

$.ajax({ 
  url: '{{ route('braintree.token') }}',
  success: function (response) { 
    braintree.setup(response.data.token, 'dropin', { 
      container: 'dropin-container', 
      onReady: function () { 
        $('#payment-button').removeClass('hidden'); 
      } 
    }); 
  }
});

你可以先检查下项目中引入的jQuery版本,如果是3.0及以上,用上面任意一种方案都能解决问题。

内容的提问来源于stack exchange,提问作者Филип Стојановић

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:37:08