使用Javascript和ASP从AJAX获取价值

时间:2011-10-05 19:13:00

标签: javascript ajax asp-classic

我正在使用这个Ajax代码。但我不知道如何使用Javascript在我的服务器端asp上检索我的value1值。

在我的服务器端,我希望有类似的东西 <% var newdata = value1(来自服务器端的那个 - 这是发送到这里) %GT;

请帮助!!!万分感谢

我知道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>

9 个答案:

答案 0 :(得分:2)

由于显而易见的原因,客户端Javascript无法查询基于服务器的数据库。根据你的目的,我建议你编写一个使用VBA / C#/ what执行实际查询的ASP,然后你可以正常解析客户端ajax调用中的结果。

答案 1 :(得分:1)

网址编码_datanbquestions个变量。 Request.QueryString("param1")会为您解码。

JavaScript URLEncode:

escape(_data);

您也可以使用VB脚本中的Server.URLEncode()方法。

答案 2 :(得分:1)

  

xmlHttp.send正确写入

  • 在尝试处理数据之前,它不会检查您是否具有200状态。
  • 无法encode数据以确保其为网址安全

我建议使用库来处理XHR的东西,而不是重新发明轮子。如果您没有使用其中一个大型库(例如MicrojsYUI),则jQuery会列出许多小型库。

  

如何使用Javascript在服务器端获取值。

它只是查询字符串数据,因此它将位于Request.QueryString

答案 3 :(得分:1)

你可以让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()(不推荐,严重!!!)来解析你的asp页面中写的数据并在你的javascript客户端代码中使用它。

有关JSON基本信息的更多信息

浏览器中的JSON:

答案 4 :(得分:1)

AJAX请求将获取服务器端脚本输出。因此,如果AJAX请求某些内容,服务器端会执行legwork并从数据库中获取结果,然后将其输出。

有关于如何做到这一点的教程的负载和负载。只需确保您正确保护脚本,以免滥用。

答案 5 :(得分:1)

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

        }
    });
}

答案 6 :(得分:0)

当您的Ajax-Request成功时,您将在Request-Object的QueryString-Collection中拥有查询字符串变量。

可以在服务器端这样工作:

<% var newdata = Request.QueryString("value1"); %>

答案 7 :(得分:0)

这是一个非常好的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);

答案 8 :(得分:0)

您需要在服务器上对数据进行编码,然后在客户端对其进行解码。您可以使用JSON-RPC。

以下是几个链接:

Official Website

Wikipedia Article about JSON-RPC

Implementations of JSON-RPC Service in different languages

但如果只有一个值可以在ASP中编码为JSON然后在JavaScript中解码,则不需要使用JSON-RPC

var array = JSON.parse(xmlHttp.responseText);