我正在使用这段Ajax代码。但我不知道如何使用Javascript在服务器端asp上检索value1的值。
在我的服务器端,我想要一些类似的东西<%var newdata=value1(这是来自服务器端的值-发送到此处(%>
请帮忙!!!感谢一百万
我知道使用PHP是可能的,但如何使用JavaScript
<script>
function ajaxNow(_data)
{
var xmlHttp;
try
{
/* Firefox, Opera 8.0+, Safari */
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
/* newer IE */
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
/* older IE */
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser is old and does not have AJAX support!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
/* this puts the value into an alert */
alert("Value read is: "+xmlHttp.responseText);
}
}
xmlHttp.open("GET","ajax_file.asp?value1="+_data,true);
xmlHttp.send(null);
}
</script>
客户端Javascript由于明显的原因无法查询基于服务器的数据库。根据您所做的工作,我建议您编写一个ASP,该ASP使用VBA/C#/任何东西来执行实际查询,然后您可以像往常一样在客户端ajax调用中解析结果。
URL对_data
和nbquestions
变量进行编码。Request.QueryString("param1")
将为您解码它们。
JavaScript URLEncode:
escape(_data);
您还可以使用VB脚本中的Server.URLEncode((方法。
xmlHttp.send正确写入
- 在尝试处理数据之前,它不会检查您是否具有
200
状态 - 它无法对数据进行编码以确保其URL安全
我建议使用一个库来处理XHR的东西,而不是重新发明轮子。如果您不使用大型库(如YUI或jQuery(,Microjs会列出许多小型库。
如何使用Javascript在服务器端获取值。
它只是查询字符串数据,所以它将在Request.QueryString
中。
AJAX请求将获取服务器端脚本输出的任何内容。因此,如果AJAX请求一些东西,服务器端会做跑腿工作,从数据库中获取结果,然后输出
关于如何做到这一点,有很多教程。只要确保你正确地保护你的脚本,这样它就不会被滥用。
您可以让asp页面将结果写入JSON格式,直接通过XMLHttpRequest对象读取,然后进行处理:
JSON 示例
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
然后,您可以在web浏览器中使用本地解析器或eval(((NOT RECOMENDED,SERIOUSLY!!(来解析在asp页面中写入的数据,并将其用于javascript客户端代码。
有关JSON基本信息的更多信息
浏览器中的JSON:
- Internet Explorer 8+
- Mozilla Firefox/Sea Monkey
- 在Opera、Chrome和Safari中也适用
//(javascript, ajax = xmlHttp)
如果您的响应文本是一个数组,您可以使用它。
var myArray = eval(xmlHttp.responseText);
或者如果它只是一个你可以使用的文本。
var value = xmlHttp.responseText
另一种方法。这只是一个模板。如果使用jquery,则可以使用这种方法。我希望它能解决你的问题或给你一个想法。
html部分:
<div id="willupdate"></div>
<div id="willupdate2"></div>
JQuery部分:
$(document).ready(function() {
getValue("serverurl",updateName)
getValue("serverurl",updateSurName)
});
function updateName(name){
$("#willupdate").text(name)
}
function updateSurName(name){
$("#willupdate2").text(name)
}
function updateSurName(name){
$("#willupdate").text(name)
}
function getValue(url,opt_onRecieved){
if( !url || url == ""){
alert("request url error");
return;
}
$.ajax({
type:"POST",
url: url,
dataType:"json",
success: function(data){
opt_onRecieved(data);
}
});
}
当Ajax请求成功时,您将在请求对象的querystring集合中拥有querystring变量。
在服务器端可以这样工作:
<% var newdata = Request.QueryString("value1"); %>
这里有一个非常好的ajax教程。一切都解释清楚了。https://developer.mozilla.org/en/AJAX/Getting_Started
你忘了一个双引号:
xmlHttp.open("post","CmsAjax.asp",true)
获取数据:
/* this puts the value into an alert */
alert(xmlHttp.responseText);
您需要在服务器上对数据进行编码,然后在客户端对其进行解码。您可以为此使用JSON-RPC。
这里有几个链接:
官方网站
维基百科关于JSON-RPC 的文章
JSON-RPC服务在不同语言中的实现
但是,如果只有一个值可以在ASP中编码为JSON,然后在JavaScript中解码,则不需要使用JSON-RPC
var array = JSON.parse(xmlHttp.responseText);