ajax正在加载页面以返回POST请求
ajax is loading the page to return a POST request
当我通过ajax发出"POST"请求时,页面在返回请求时正在加载。
我们不使用ajax来防止整个页面重新加载吗?
这是我的html代码:<form method="post">
<div align="center" class="col-md-10">
<input type="text" id= "input" name="input" >
</div><
<div class="form-group">
<button type="submit" class="btn btn-default" id="search">
Search
</button>
</div>
</form>
这是我的ajax请求:
<script>
$(document).ready(function () {
$(".search").on('click', function () {
var data = {};
data['input'] = $('#input').val();
// Submit data via AJAX§
$.ajax({
url: '/home',
type: 'post',
data: data,
success: function (data) {
}
});
});
});
</script>
有没有人知道如何解决这个问题,我做错了什么!! 我认为,您有search
作为id不是类。它根本没有调用ajax。它正在提交,因为它是一个submit
按钮,所以像这样修改代码,
注意: .search
将不工作,
$("#search").on('click', function (e) {
e.preventDefault();
var data = {};
data['input'] = $('#input').val();
// Submit data via AJAX
$.ajax({
url: '/home',
type: 'post',
data: data,
success: function (data) {
}
});
});
e.preventDefault()
用于防止提交按钮的默认行为(默认情况下,点击提交按钮将重新加载页面。)查看更多关于e.preventDefault()
,这里或这里
您正在使用Id并选择错误的类。
使用$("#search").on('click', function (e) {
代替
$(".search").on('click', function (e) {
所以最终的JS将是
<script>
$(document).ready(function () {
$("#search").on('click', function (e) {
e.preventDefault();
e.stopPropagation();
var data = {};
data['input'] = $('#input').val();
// Submit data via AJAX§
$.ajax({
url: '/home',
type: 'post',
data: data,
success: function (data) {
}
});
});
});
代码对。
您只需要将preventDefault()添加到click
函数中,并将.search
更改为#search
,即…
<script>
$(document).ready(function () {
$("#search").on('click', function (e) {
e.preventDefault();
var data = {};
data['input'] = $('#input').val();
// Submit data via AJAX§
$.ajax({
url: '/home',
type: 'post',
data: data,
success: function (data) {
}
});
});
});
</script>
event.preventDefault ()
这个方法不接受任何参数。例如,单击锚不会将浏览器带到新的URL。我们可以使用event. isdefaultprevent()来确定这个方法是否有由此事件触发的事件处理程序调用
如果你需要在没有页面加载的情况下提交表单,你需要阻止按钮的默认行为:
$(your_button).on('click', function (ev) {
ev.preventDefault();
// do stuff here
});
你必须在onclick事件处理程序中返回false
来阻止表单被提交:
$(".search").on('click', function () {
var data = {};
data['input'] = $('#input').val();
// Submit data via AJAX§
$.ajax({
url: '/home',
type: 'post',
data: data,
success: function (data) {
}
});
return false;
});
也请检查此以获得更多关于return false;
和e.preventDefault();
之间的差异的信息
使用type="button"代替submit。提交按钮将按原样提交表单。
相关文章:
- 当method=post时,jQueryAjax返回404
- 数据未从ajax POST返回
- post()向服务器动态生成的数据返回空响应
- DreamFactory REST API POST休息/用户/会话请求总是在IE9中返回错误
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- 为什么我的$http.post返回一个400错误
- AngularJS$http.post调用返回502(坏网关)错误
- 为什么Hapi.js POST处理程序返回空负载
- 如何将多个onError函数分配给promise(由angular's$http.post返回)
- jQuery's$.post只返回一个空白数据
- 已将POST更改为GET.现在Ajax正在返回多个帖子
- Ajax POST返回成功,但没有;t更新JSON文件
- 从返回的数据 ajax post 创建一个变量
- jQuery通过父函数返回$.post回调
- Javascript确认返回post值
- ajax正在加载页面以返回POST请求
- AJAX找不到php文件.它返回"POST 405(方法不允许)"
- 当使用$http发送字符串请求时,请求体作为对象返回.Post (angular)和bodyparser.text()
- 返回post数据角
- 包裹角度$resource请求,但不返回POST数据