调用ajax响应返回的javascript函数后,页面保持刷新
我已经尝试了关于ajax响应返回的调用javascript函数的大多数答案。每个答案都有效,但我必须调用alert来显示ajax响应以查看结果。(如果在函数refreshResults中不使用alert,有时结果会显示,但会立即消失)页面似乎一直在刷新 这是截图。 我已经测试过浏览器可以成功地从服务器接收数据。问题是如何从浏览器端显示数据 下面是与从服务器接收数据以及服务器如何返回数据相关的代码 阿贾克斯 这就是我向服务器发送数据的方式调用ajax响应返回的javascript函数后,页面保持刷新,javascript,jquery,ajax,node.js,Javascript,Jquery,Ajax,Node.js,我已经尝试了关于ajax响应返回的调用javascript函数的大多数答案。每个答案都有效,但我必须调用alert来显示ajax响应以查看结果。(如果在函数refreshResults中不使用alert,有时结果会显示,但会立即消失)页面似乎一直在刷新 这是截图。 我已经测试过浏览器可以成功地从服务器接收数据。问题是如何从浏览器端显示数据 下面是与从服务器接收数据以及服务器如何返回数据相关的代码 阿贾克斯 这就是我向服务器发送数据的方式 sendAjaxQuery('http://localh
sendAjaxQuery('http://localhost:3000/results.html',JSON.stringify($('form').serializeObject()));
js
这是单击处理程序
function sendData() {
var form = document.getElementById('myform');
sendAjaxQuery('http://localhost:3000/results.html',JSON.stringify($('form').serializeObject()));
}
var sendButton = document.getElementById('sendButton');
sendButton.onclick = sendData;
这是相应的html
<form id="myform">
<input type="text" name="Search" value="">
<button id="sendButton" >Search</button>
搜寻
sendAjaxQuery方法的要点是什么 它只是重新创建
$.post
的功能
只用
// url and data should be whatever you pass to sendAjaxQuery now
$.post(url, data, refreshResults);
无论何时您想要进行ajax调用
更新看到您正在提交表单内容,问题可能是您也允许以正常方式提交表单(这会导致页面刷新) 您需要取消启动此操作的按钮的正常操作 由于您使用的是jQuery,因此最好将其用于绑定事件处理程序 改变
var sendButton = document.getElementById('sendButton');
sendButton.onclick = sendData;
到
为什么需要这一行?:
eval(document.getElementById(“refreshResults”).innerHTML)代码>@最后面的事实上这没关系。这只是我几次尝试中的一次。在注释行之后,取消对其余行的注释。还是一样。我必须在调用javascript之后调用警报以查看结果。刚才显示use eval也不起作用(stackoverflow中的其他类似答案)。其中调用了sendAjaxQuery()
?@抱歉。这是我代码的一部分。因为我非常确定我成功地从服务器获取了数据。我会更新这个问题。你为什么需要这个?!标签上有身份证?!当你在脚本标记中使用innerHtml时,它工作了,也许它正在重新加载!给我们举一个来自ajax.success的数据示例@AlexWei@AlexWei,很可能您需要取消正常表单提交。如果您发布点击处理程序,您绑定到按钮,我可以告诉您要添加什么。@AlexWei刚刚用您需要更改的代码更新了我的答案是。它起作用了。非常感谢。做这件事花了我好几个小时。
<form id="myform">
<input type="text" name="Search" value="">
<button id="sendButton" >Search</button>
// url and data should be whatever you pass to sendAjaxQuery now
$.post(url, data, refreshResults);
var sendButton = document.getElementById('sendButton');
sendButton.onclick = sendData;
$('#sendButton').on('click', function(e){
e.preventDefault();
sendData();
});