ajax方法不起作用

问题描述 投票:0回答:2

我试图让这个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

当我运行代码时,总是执行错误功能,我从未到达代码的成功功能块。我尝试将dataType更改为html但是,这不起作用。我用on函数替换了submit函数并使用了submit参数,我仍然无法在我的success函数中执行任何代码。但是,当我删除侦听提交事件的代码时,我能够达到我的成功功能。但是,我不希望我的程序出现这种行为。我希望能够使用submit事件控制对服务器的请求。当我在浏览器的开发者控制台中检查网络标记时,我没有从错误函数中找回任何错误,也没有看到任何内容。我甚至尝试查看apache的访问和错误日​​志,但是,我没有看到任何错误或我的代码通信的任何迹象。有什么建议?

附:感谢所有的建议。只是为了澄清,这是我尝试过的第一件事。我检查了服务器和浏览器之间传输的流量,我没有看到从我的服务器返回所请求的信息。我怀疑ajax方法首先没有发送请求,但是请求正在进行中。我将我的统一请求标识符从一个代码复制并粘贴到下一个代码,所以我知道它是正确的。我取出了action属性,因为我的应用程序使用html中的代码提供的统一请求定位器来调用服务器,而不是ajax方法中属性提供的url。我甚至到目前为止检查apache的访问和错误日​​志,看看我是否能看到任何可能已经发生的http错误但是,我的浏览器和服务器之间没有任何流量的迹象。我试过使用“event.preventDefault();”但那也不起作用。我在代码块中使用了具有提交事件监听器的函数;我把它放在代码块的末尾,它仍然无法正常工作。我很困惑,不知道我做错了什么。

javascript php jquery ajax
2个回答
1
投票

使用浏览器开发人员模式,然后查找“网络”选项卡,您可以看到您的方法正在执行的调用以及响应。你会发现导致错误的原因。你需要解决这些问题才能克服你的问题。


0
投票

您缺少表单元素中的action属性。单击提交时将调用操作attr中的文件

    <form class="ajax" action="./UpdateCard.php">//set action attr here
    <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>
© www.soinside.com 2019 - 2024. All rights reserved.