我试图让这个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的访问和错误日志,但是,我没有看到任何错误或我的代码通信的任何迹象。有什么建议吗?
P.S。感谢所有的建议。只是为了澄清,这是我尝试过的第一件事。我检查了服务器和浏览器之间传输的流量,我没有看到从我的服务器返回所请求的信息。我怀疑ajax方法首先没有发送请求,但是请求正在进行中。我将我的统一请求标识符从一个代码复制并粘贴到下一个代码,所以我知道它是正确的。我取出了action属性,因为我的应用程序使用html中的代码提供的统一请求定位器来调用服务器,而不是ajax方法中属性提供的url。我甚至到目前为止检查apache的访问和错误日志,看看我是否能看到任何可能已经发生的http错误但是,我的浏览器和服务器之间没有任何流量的迹象。我试过使用“event.preventDefault();”但那也不起作用。我在代码块中使用了具有提交事件监听器的函数;我把它放在代码块的末尾,它仍然无法正常工作。我很困惑,不知道我做错了什么。
答案 0 :(得分:1)
使用浏览器开发者模式,然后查找“网络”选项卡,您可以看到您的方法正在进行的调用以及响应。你会发现造成错误的原因。你需要解决这些问题才能克服你的问题。
答案 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>
&#13;