ajax如何使用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax如何使用?相关的知识,希望对你有一定的参考价值。
我在点击一个button执行confrim函数后取到一个值,使用ajax传入本php页面。原本写在confrim函数里,引用jquery后,onclick事件不执行了。我该怎么解决呢? 请大神们赐教
我是这么写的。modify函数只是点击后显示出text和button(ensure),再执行confirm函数。现在modify函数执行不了。怎么解决
步骤如下五个步骤
1.创建异步对象,首先,创建一个XMLHttpRequest异步对象。
2.设置请求方式和地址,然后,设置请求方式和请求地址
3.用send发送请求,接着,用send发送请求。
4.监听状态变化,然后,监听状态变化。
5.接收返回的数据,最后,接收返回的数据 参考技术B //定义一个
var xmlHttp;
function createXMLHttpRequest()
if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
else if(window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
function check()
//1.获取需要发送服务器的请求参数
var username = document.getElementById("username").value;
//2.创建XMLHttpRequest对象
createXMLHttpRequest();
//3.定义url,指定发送到服务器哪个文件
var url = "servlet/CheckServlet";
//4.打开连接,异步模式
xmlHttp.open("post", url, true);
//5.设置请求头信息
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//6.回调函数,接收服务器响应数据
xmlHttp.onreadystatechange = function ()
//8.接收服务器端的响应数据
//判断请求发送的状态和HTTP状态码
if(xmlHttp.readyState==4&&xmlHttp.status==200)
//9.接收响应数据
var text = xmlHttp.responseText;
alert(text);
//10.根据text的值确定在页面动态显示相应的信息
var msg_username = document.getElementById("msg_username");
if(text=="false")
msg_username.innerhtml="<font color='red'>否</font>";
document.getElementById("submit").disabled=true;
else
msg_username.innerHTML="<font color='green'>是</font>";
document.getElementById("submit").disabled=false;
//7.发送
xmlHttp.send("username="+username);
alert(username);
追问
这边不懂。请问这个放在哪儿呢?ajax的话,得调用一个jquery方法?我上面写的路径好像是无效的。里面没有方法。
如何使用 ajax 调用 aspx.vb 方法
【中文标题】如何使用 ajax 调用 aspx.vb 方法【英文标题】:how to call aspx.vb method using ajax 【发布时间】:2021-11-14 12:48:20 【问题描述】:如何从 ajax 调用 vb.net 方法我将数组作为 ajax 中的参数发送,但它不起作用 这是ajax和javascript代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$("#Button1").click(function ()
var Years = document.getElementById("Options").querySelectorAll(".selected");
$.ajax(
type: "POST",
url: "NewScenarioProfilePage.aspx/CalculateSum",
data: "'yearvalue ':'" + Years + "'",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response)
' this alert didn't show
alert(response.d);
);
);
这是vb方法 P.s this yearvalue 如果超过 2 个值可能是一个数组,如果是一个值,它可能是一个整数变量
<System.Web.Services.WebMethod()>
Public Shared Function CalculateSum(ByVal yearvalue as Integer) As String
MsgBox("calculate sum")
Dim Result As Integer = yearvalue
Return Result.ToString()
End Function
并且 msgbox 不会触发。 我不知道问题是什么。 这是我点击按钮时检查中的错误
jquery.min.js:4 POST https://localhost:44351/NewScenarioProfilePage.aspx/CalculateSum 401
send @ jquery.min.js:4
ajax @ jquery.min.js:4
(anonymous) @ NewScenarioProfilePage:477
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
【问题讨论】:
MsgBox 不能用于网页。我使用 XMLhttpRequest 来触发 ashx 处理程序。 【参考方案1】:您收到了 401 状态代码作为响应。因此,您可能缺少身份验证机制。
【讨论】:
我将设置匿名身份验证设置为应用程序池标识。从这里 IIS -> 身份验证 -> 将匿名身份验证设置为应用程序池标识。仍然有同样的错误!【参考方案2】:嗯,我认为你需要删除服务器端的 msgbox - 它会很长时间搞砸,因为 ajax 调用是异步的。
试试这个例子:
让我们放入两个文本框,一个按钮,然后从第一个文本框中获取值,通过函数运行它(例如,为了好玩,乘以 2)。
所以我们有这个服务器代码:
<System.Web.Services.WebMethod()>
Public Shared Function CalculateSum(ByVal yearvalue As Integer) As String
Debug.Print("cal sum run!!")
Dim Result As Integer = yearvalue * 2
Return Result.ToString()
End Function
对于客户端呢?让我们不只是让 js 代码“坐”在那里 - 让我们调用一个例程,然后发布。
所以让我们加入一个标准的 asp.net 按钮 - 但请注意我们如何只使用该按钮 (onClientClick) 调用客户端代码。我们使用 return false 所以按钮不会回发。
<div>
Enter year:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Test Ajax call"
OnClientClick="mytest();return false"/>
<br />
Result ajax from server: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</div>
<script>
function mytest()
myyear = $('#TextBox1').val()
$.ajax(
type: "POST",
url: "AjaxTestFun.aspx/CalculateSum",
data: JSON.stringify( yearvalue: myyear ),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (rData)
// put results send back into TextBox2
$('#TextBox2').val("Result from server = " + rData.d)
,
failure: function (rData)
alert("error " + rData.d);
);
</script>
所以,输出现在看起来像这样:
所以,我使用了 debug.print。使用该日志或控制台日志,因为当您开始使用 ajax 调用时,服务器端的 msgbox 通常会伤害您。
如果当前网页工作正常,那么在 web 方法中折腾也可以工作(这不是身份验证问题)。
我还使用了 JSON.stringify。它“假定”第一个值是文本,第二个值可以是我使用的变量,例如 mymyear,或者您可以在引号下使用 '12335'。
因此,stringify 真的可以帮助世界贫困和苦难,因为您不必尝试连接一堆变量,以及一大堆单引号或双引号。
【讨论】:
谢谢我试过了,但还是有这个错误Failed to load resource: the server responded with a status of 404 () jquery.min.js:2 POST https://localhost:44351/AjaxTestFun.aspx/CalculateSum 404 send @ jquery.min.js:2 ajax @ jquery.min.js:2 mytest @ NewScenarioProfilePage:478 onclick @ NewScenarioProfilePage:233
是否有任何标准按钮表示您放到页面上的测试有效?这个web方法是在网页上,还是分开的?此外,当页面第一次加载时,按 ctrl-F5 强制重新加载浏览器缓存 - 由于缓存的 js 代码,我吹了一个下午。我假设 jQuery 正在工作?
嗯,您必须将 AjaxTestfun 更改为您的页面名称?也许您的页面名称不同? - 也许你创建了一个新的,但它确实需要你创建的网页的名称。
是的,我改了,但还是不行!
删除一个标准的 asp.net 按钮并在后面的代码中说一个 debug.print 是否有效?您是否尝试过在 web 方法例程中设置断点?那样有用吗?创建一个新的空白 Web 测试页。我在此处发布的示例有效吗?以上是关于ajax如何使用?的主要内容,如果未能解决你的问题,请参考以下文章