Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用ajax响应返回的javascript函数后,页面保持刷新_Javascript_Jquery_Ajax_Node.js - Fatal编程技术网

调用ajax响应返回的javascript函数后,页面保持刷新

调用ajax响应返回的javascript函数后,页面保持刷新,javascript,jquery,ajax,node.js,Javascript,Jquery,Ajax,Node.js,我已经尝试了关于ajax响应返回的调用javascript函数的大多数答案。每个答案都有效,但我必须调用alert来显示ajax响应以查看结果。(如果在函数refreshResults中不使用alert,有时结果会显示,但会立即消失)页面似乎一直在刷新 这是截图。 我已经测试过浏览器可以成功地从服务器接收数据。问题是如何从浏览器端显示数据 下面是与从服务器接收数据以及服务器如何返回数据相关的代码 阿贾克斯 这就是我向服务器发送数据的方式 sendAjaxQuery('http://localh

我已经尝试了关于ajax响应返回的调用javascript函数的大多数答案。每个答案都有效,但我必须调用alert来显示ajax响应以查看结果。(如果在函数refreshResults中不使用alert,有时结果会显示,但会立即消失)页面似乎一直在刷新

这是截图。

我已经测试过浏览器可以成功地从服务器接收数据。问题是如何从浏览器端显示数据

下面是与从服务器接收数据以及服务器如何返回数据相关的代码

阿贾克斯

这就是我向服务器发送数据的方式

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();
});