Truck53 Ответов: 1

Не удается заставить метод ajax работать


Я пытаюсь заставить этот метод ajax работать, но по какой-то причине моя функция успеха не будет выполняться, и я не могу получить информацию с моего сервера. Если бы кто-нибудь мог сказать мне, что я делаю неправильно, я бы это понял. Мой код приведен ниже.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <script src="jquery3_2_1.js" type="text/javascript"></script>
    <script src="Test.js" type="text/javascript"></script>
</head>
<body>
<form class="ajax">
<input type="hidden" name="Item" value="Chicken">
<input type="hidden" name="Price" value="2.99">
<input type="hidden" name="Qty" value="5">
<button type="submit">ADD TO CART</button>
</form>
<div id="response1"></div>
</body>
</html>


мой серверный код находится здесь:
<?php
//UpdateCart.php

  echo "This is a test.";

?>


вот мой jquery:

$(document).ready(function(){
    $('form.ajax').submit(function(){
      alert('Trigger');
  
        $.ajax({
            type: "post",
            url: "UpdateCart.php",
            dataType: "text",
            success: function(response){
              $('#response1').html('reponse variable equals: '+response);
            },
            error:function(){
              $('#response1').html('in error function');
          }
       });//end ajax function
    });//end submit function
});//end ready function


Что я уже пробовал:

When I run the code, the error function is always executed and I never reach the success function block of code. I tried changing the dataType to html but, that does not work. I replaced the submit function with the on function and used the submit parameter and I still can not execute any code in my success function. However, when I remove code that listens to the submit event, I am able to reach my success function. But, I do not want this behaviour from my program. I want to be able to control the request to the server with the submit event. I do not get back any errors from the error function nor do I see anything when I check the network tag in my browser's developer console. I even tried looking into apache's access and error logs but, I do not see any errors or any sign of my code communicating with the server. Any suggestions?

Я попробовал этот код, и он также не достигает функции успеха:
мой серверный код находится здесь:

$(document).ready(function(){
    $('form.ajax').on('submit',function(){
      alert('Trigger');
  
        $.ajax({
            type: "post",
            url: "UpdateCart.php",
            dataType: "text",
            success: function(response){
              $('#response1').html('reponse variable equals: '+response);
            },
            error:function(){
              $('#response1').html('in error function');
          }
       });//end ajax function
    });//end submit function
});//end ready function


Я могу достичь функции успеха с помощью этого кода, но она не имеет той функциональности, которую я хочу; у нее удален прослушиватель отправки:
$(document).ready(function(){
      alert('Trigger');
  
        $.ajax({
            type: "post",
            url: "UpdateCart.php",
            dataType: "text",
            success: function(response){
              $('#response1').html('reponse variable equals: '+response);
            },
            error:function(){
              $('#response1').html('in error function');
          }
       });//end ajax function
});//end ready function

Afzaal Ahmad Zeeshan

Проверьте также сообщение об ошибке, я думаю, что есть 404 и страница не найдена. Рассмотреть следующее url: "/UpdateCart.php".

Sinisa Hajnal

функция ошибки имеет три параметра: статус, ошибка и исходный запрос. Проверить их.

1 Ответов

Рейтинг:
0

ZurdoDev

Как уже упоминалось в комментариях, вы должны изучить параметры, отправленные в функцию error. Но сначала вы должны их объявить. Видеть на jQuery."Аякс" () | библиотека jQuery API документация[^]