簡體   English   中英

Ajax錯誤`未捕獲的TypeError:進行Ajax調用時非法調用

[英]Ajax error `Uncaught TypeError: Illegal invocation when making ajax call

我正在使用下面的腳本來處理我的登錄表單並通過ajax發送登錄請求,但出現錯誤。 我以前從未遇到過此錯誤。 代碼如下:

Uncaught TypeError: Illegal invocation
    at e (jquery.min.js:4)
    at Ab (jquery.min.js:4)
    at Function.r.param (jquery.min.js:4)
    at Function.ajax (jquery.min.js:4)
    at loginReq (admin:95)
    at HTMLButtonElement.onclick (admin:15

2)

<script language="javascript" type="text/javascript">

function loginReq() {
  var username = $("#username").val();
  var password = $("#password").val();
  // Checking for blank fields.
  if( username =='' || password ==''){
    $('input[type="text"],input[type="password"]').css("border","2px solid red");
    $('input[type="text"],input[type="password"]').css("box-shadow","0 0 3px red");
    $('#login_alert').show();
    $("#login_alert").fadeTo(2000, 500).slideUp(500, function(){
      $("#login_alert").slideUp(500);
    });
  } else {
      $.ajaxSetup({
          headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
          }
      });
      var link="login";
      var formData = new FormData(document.getElementById('#login_form'));
      $.ajax({
              type: 'post',
              dataType: 'html',
              url: link,
              cache: false,
              data: formData,
              success: function (result) {
                var obj = jQuery.parseJSON(result);
                var status = obj['success'];
                if(status == 'success'){
                    window.location.href = "{{ url('dashboard') }}";
                }else{
                    $("#login_alert2" ).show();
                    $("#login_alert2").fadeTo(2000, 500).slideUp(500, function(){
                      $("#login_alert2").slideUp(500);
                    });
                }
              }
        });
  }
}
</script>

有人可以幫我什么可能是問題!

你需要設置

processData為false:默認情況下,將處理作為對象傳遞給data選項的數據(從技術上講,不是字符串),然后將其轉換為查詢字符串,以適合默認的內容類型“ application / x-www-窗體-urlencoded”。 如果要發送DOMDocument或其他未處理的數據,請將此選項設置為false。

 function loginReq() { var username = $("#username").val(); var password = $("#password").val(); // Checking for blank fields. if( username =='' || password ==''){ $('input[type="text"],input[type="password"]').css("border","2px solid red"); $('input[type="text"],input[type="password"]').css("box-shadow","0 0 3px red"); $('#login_alert').show(); $("#login_alert").fadeTo(2000, 500).slideUp(500, function(){ $("#login_alert").slideUp(500); }); } else { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); var link="login"; var formData = new FormData(document.getElementById('#login_form')); $.ajax({ type: 'post', dataType: 'html', url: link, cache: false, data: formData, processData: false, //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ success: function (result) { var obj = jQuery.parseJSON(result); var status = obj['success']; if(status == 'success'){ window.location.href = "{{ url('dashboard') }}"; }else{ $("#login_alert2" ).show(); $("#login_alert2").fadeTo(2000, 500).slideUp(500, function(){ $("#login_alert2").slideUp(500); }); } } }); } } $('#btn').on('click', function(e) { loginReq(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form id="login_form"> User name: <input type="text" id="username" value="username"> Password: <input type="password" id="password" value="pasword"> <button type="button" id="btn">Send Ajax</button> </form> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM