我试图写一个简短的ajax代码来回应“你好”这个词。到了屏幕,但到目前为止我没有运气。如果有人知道我做错了什么,请纠正我,让我知道。谢谢。
test6.html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type = "text/javascript">
function myAjax() {
$.ajax({
type: "POST",
url: 'testing.php',
data:{action:'call_this'},
error: function(xhr,status,error){alert(error);},
success:function(html) {
alert(html);
}
});
}
</script>
<a href="#" onclick="myAjax()">echo hello</a>
testing.php
<?php
if($_POST['action'] == 'call_this') {
echo "hello";
}
?>
答案 0 :(得分:2)
你有两个问题。首先,您有语法错误。您需要error
之后的逗号:
function myAjax() {
$.ajax({
type: "POST",
url: 'testing.php',
data:{action:'call_this'},
error: function(xhr,status,error){alert(error);} /* this comma --> */ ,
success:function(html) {
alert(html);
}
});
}
其次,由于您使用的是锚点(<a>
)标记,因此当您单击标记时,它会跟随链接。你必须防止这种情况发生。你可以:
<a>
标记href
添加到#
或javascript:void(0)
false
在 JSFiddle
上查看修改强>
另外,您可能更喜欢使用JavaScript来绑定事件处理程序。通过这种方式,您可以进一步分离JS和HTML,这通常是首选。这样的事情应该有效:
$("#sendAjax").click(function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: '/echo/html/',
data:{html:'call_this'},
error: function(xhr,status,error){alert(error);},
success:function(html) {
console.log(html);
$("#result").text(html);
}
});
});
然后在您的HTML中,您不需要onclick
处理程序:
<a href="#" id="sendAjax">echo hello</a>
在 JSFiddle
上查看答案 1 :(得分:2)
我对您的代码进行了一些细微更改,例如为“动作”添加引号,并创建了一个按钮,因为<A HREF
在点击事件方面存在一些问题(按钮不具备这些功能)问题),现在它对我来说很有用,请告诉我它是否适合你:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type = "text/javascript">
function myAjax () {
$.ajax( { type : 'POST',
data : {'action':'call_this'},
url : 'testing.php',
success: function ( data ) {
document.getElementById( "my_div" ).innerHTML = data;
},
error: function ( xhr ) {
alert( "error" );
}
});
}
</script>
</head>
<body>
<a href="" onclick="myAjax()">echo hello</a>
<br/><br/>
<button onclick="myAjax()">echo hello</button>
<br/><br/>
<div id="my_div"></div>
</body>
</html>