我一直在用twilio和laravel 5.5开发一个callcenter应用程序,我想在我的应用程序中获得webrtc功能,为此我必须使用ajax来发出请求。
然而我收到以下警告:
jQuery.Deferred异常:$ .ajax不是函数 @ http://localhost:8000/js/browser-calls.js:14:2 升@ http://localhost:8000/js/jquery.js:2:29373 一个/ HTTP://本地主机:8000 / JS /的jquery.js:2:2967
出现以下错误:
TypeError:$ .ajax不是函数
我搜索过高低的解决方案,我尝试了以下内容:
从cdn下载jquery到客户端并包含它
尝试最新的CDN <script src="http://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
</body>
<script src="http://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
<script type="text/javascript" src="//media.twiliocdn.com/sdk/js/client/v1.3/twilio.min.js"></script>
<script type="text/javascript" src="{{ asset('js/browser-calls.js') }}"></script>
什么都无法解决问题,这是我的ajax调用
/* get twilio token with AJAX request */
var clientName = $('#agent-name').data('name');
$.ajax({
type: 'POST',
url: '/twilio/generate-token',
data: {
clientName: clientName,
},
success: function(data) {
Twilio.Device.setup(data.token);
}
});
我也尝试了$.post
而不是$.ajax
,但却导致了相同的错误。
$.post('/twilio/generate-token', {
clientName: clientName,
clientToken: this.clientToken
}, function(data) {
Twilio.Device.setup(data.token);
});
导致$.ajax
功能无法识别的原因到底是什么..
答案 0 :(得分:1)
jquery liberary被包含在laravel本身的app.js
脚本之前,之后我将jquery cdn移到了app.js
的定位之后,问题得到了修复
答案 1 :(得分:1)
我遇到了同样的问题,但是通过添加以下行来解决了这个问题:
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
答案 2 :(得分:0)
与添加第二个jQuery相比,我遇到了同样的问题,并且得到了更好的解决方案。 我发现app.js需要bootstrap.js。
在bootstrap.js中,已加载“ jquery / dist / jquery.slim.js”,只需将其更改为: “ jquery / dist / jquery.min.js”,并在重新编译和加载页面几次后,以更简洁的方式解决了该问题。
问题是已加载了jQuery的超薄版本,该版本实际上不包含任何ajax功能。