更新. .需要一个Ajax示例,说明客户端如何在不回发的情况下从服务器端获取值
Updated ... need an Ajax example about how client side gets a value from the server side w/o postback
基本上我想检查用户是否使用javascript登录当一个按钮被点击
我知道ajax可以做到这一点,但我不知道从哪里开始…我不想学习整个ajax
有任何简单的代码样本,我可以"借用"?
============================== 更新2 ===================================
我贴出了另一个问题,得到了下面的答案…如果有人有和我一样的问题…
我可以返回true到asp.net OnClientClick Ajax调用后?或者其他方式?
============================== 更新 =====================================
我读了一些例子,但我就是找不到我需要的那个。我可以从服务器端得到结果,然后……卡住了……这是我的代码,请帮助评论中的问题。非常感谢!!
在.ascx:<asp:Button ID="buttonSubmit" Text="Submit" OnClientClick="return buttonSubmitOnclick()" OnClick="buttonSubmit_Click" runat="server"/>
在js :
function buttonSubmitOnclick() {
showLogin();
//What to do here??? how to return true if the ajax call return 'true'?
return true; //???
}
//========== Ajax ==============
function showLogin() {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (xmlhttp.responseText == "false") {
$find('modalPopupLogin').show(); //Show Login Dialog
};
}
}
xmlhttp.open("GET", "AjaxService.aspx?t=auth", true); //??? should the last parameter be "false"???
xmlhttp.send();
}
这很直接。由于您正在使用asp.net,可能最简单的方法是使用page方法。asp.net中的页面方法允许你在后台编写。net代码,然后使用javascript方法调用它。page方法必须声明为静态/共享,因为它将在页面生命周期之外被访问。
下面是一些例子:
——http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx
——http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
Page方法都很容易调用。
关于在w3上使用不使用jQuery的Ajax有一些很好的信息,其中最后有一个使用asp的Ajax的工作示例。不需要太多的阅读
问题更新:底部解释了使用异步true和false的区别。
使用async=true, JS不会等待响应,所以你不想在这里处理它:
function buttonSubmitOnclick() {
showLogin();
//What to do here??? how to return true if the ajax call return 'true'?
return true; //???
}
一旦xmlhttp.send()运行,js继续前进,从showLogin()返回,并将从buttomSubmitOnclick返回,无论登录响应是否已经返回。
假设async为真,您需要扩展onreadystatechange函数中的条件,以便在responseText == "true"时处理。
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (xmlhttp.responseText == "false") {
$find('modalPopupLogin').show(); //Show Login Dialog
}else if (xmlhttp.responseText == "true") {
//Continue the previous/submit action here because we are already authenticated
}
}
}
- 如何在不需要单击按钮的情况下获取选项的值
- 如何在没有回调的情况下获取有关元素的信息
- 在不使用sort()的情况下获取HTML LI元素的副本
- Javascript如何在不使用画布的情况下获取鼠标位置
- Javascript在没有jQuery的情况下获取X父节点
- Rails/JS-在不刷新页面的情况下获取变量
- jQuery在不刷新页面的情况下获取每个A标记的值
- 在没有jquery的情况下获取iframe中的特定内容
- AJAX/JS:是否可以在没有提交按钮和刷新页面的情况下获取输入文本的值
- 如何在不使用事件的情况下获取元素的 pageX 和 pageY
- 角度 - 在不使用 ng-repeat的情况下获取数据长度
- AngularJS:在不修改ng模型的情况下获取选择标签
- 我可以在没有对象函数调用的情况下获取(可能是计算的)属性值吗?
- 如何在选中数组复选框的情况下获取数组文本框的验证
- 索引数据库,如何在不重新加载页面的情况下获取更新的数据
- 如何在没有元素的情况下获取文件引用对象
- 如何在没有jQuery的情况下获取事件目标
- JavaScript:在没有画布的情况下获取 ImageData
- 在没有解析 JSON 的情况下获取高图表数据
- 如何在没有图像的情况下获取链接