使用 Javascript 和 ASP 从 AJAX 获取价值

发布于 2024-12-10 05:00:47 字数 1031 浏览 0 评论 0 原文

我正在使用这个 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>

I am using this Ajax code. But I dont know how i will retrieve my value of value1 on my server-side asp using Javascript.

On my serverside I want to have something like
<%
var newdata = value1 ( which is the one from the serverside - which was send here)
%>

Please Help !!! thanks a million

I know it is possible with PHP but how do i do with 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

清风疏影 2024-12-17 05:00:48

由于显而易见的原因,客户端 Javascript 无法查询基于服务器的数据库。根据您似乎正在做的事情,我建议您编写一个 ASP,它使用 VBA / C# / 等执行实际查询,然后您可以像平常一样解析客户端 ajax 调用中的结果。

Client-side Javascript can't query server-based databases for obvious reasons. Based on what you appear to be doing, I would suggest you code an ASP which performs the actual query using VBA / C# / whatever, and you can then parse the results in your client-side ajax call as normal.

随遇而安 2024-12-17 05:00:48

URL 编码 _datanbquestions 变量。 Request.QueryString("param1") 将为您解码它们。

JavaScript URLEncode:

escape(_data);

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

URL encode _data and nbquestions variables. Request.QueryString("param1") will decode them for you.

JavaScript URLEncode:

escape(_data);

Also you can use Server.URLEncode() methods from VB script.

情释 2024-12-17 05:00:48

xmlHttp.send 写入正确

  • 在尝试处理数据之前,它不会检查您是否具有 200 状态。
  • 它无法编码数据以确保它是URL安全的

我会建议使用库来处理 XHR 内容,而不是重新发明轮子。 Microjs 如果您不使用大型库之一(例如 < a href="http://developer.yahoo.com/yui/" rel="nofollow">YUI 或 jQuery< /a>)。

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

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

xmlHttp.send correctly writen

  • It doesn't check that you have a 200 status before trying to deal with the data.
  • It fails to encode the data to make sure it is URL safe

I would suggest using a library to handle XHR stuff, instead of reinventing the wheel. Microjs has a list of lots of small libraries if you aren't using one of the large ones (such as YUI or jQuery).

how do I get the values on the server-side using Javascript.

It is just query string data, so it will be in Request.QueryString.

梦里兽 2024-12-17 05:00:48

无论服务器端脚本输出什么,AJAX 请求都会获取该输出。因此,如果 AJAX 请求某些内容,服务器端会进行跑腿工作并从数据库中获取结果,然后将其输出。

有大量关于如何做到这一点的教程。只需确保正确保护脚本,以免其被滥用。

Whatever the server-side script outputs will be picked up by the AJAX request. So if the AJAX requests something, the server-side does the legwork and fetches the result from the database and then outputs it.

There are loads and loads of tutorials on how to do exactly this. Just ensure that you secure your script properly so that it's not open to abuse.

十雾 2024-12-17 05:00:48

您可以使 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 的更多信息:

you can make the asp page write the result as JSON format read in directly via XMLHttpRequest Object and later processing:

example of JSON

var myJSONObject = {"bindings": [
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
};

then you can use native parsers in web browsers or eval() (NOT RECOMENDED, SERIOUSLY!!!) to parse the data written in your asp page and use it in your javascript client code.

More information about JSON basic info

JSON in browsers:

暮凉 2024-12-17 05:00:48
//(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);

        }
    });
}
//(javascript, ajax = xmlHttp)

if your response text is an array you can use this.

var myArray = eval(xmlHttp.responseText);

or if it is a just text you can use .

var value = xmlHttp.responseText

Another approach.This is just a template. If you use jquery, you can use this approach. i hope it solve your problem or give an idea.

html part:

<div id="willupdate"></div>
<div id="willupdate2"></div>

JQuery part:

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

        }
    });
}
微凉徒眸意 2024-12-17 05:00:48

当您的 Ajax 请求成功时,您将在请求对象的查询字符串集合中拥有查询字符串变量。

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

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

When your Ajax-Request succeeds you will have the querystring-variables in the QueryString-Collection of the Request-Object.

Could work like this on the server side:

<% var newdata = Request.QueryString("value1"); %>
没︽人懂的悲伤 2024-12-17 05:00:48

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

Here is a very good ajax tutorial. There is everything explained. https://developer.mozilla.org/en/AJAX/Getting_Started

You forget a double quote:

xmlHttp.open("post","CmsAjax.asp",true)

To get the data:

/* this puts the value into an alert */
alert(xmlHttp.responseText);
心安伴我暖 2024-12-17 05:00:48

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

以下是一些链接:

官方网站

关于 JSON-RPC 的维基百科文章

JSON-RPC 的实现不同语言的服务

但是你如果您只有一个值,则不需要使用 JSON-RPC,您可以在 ASP 中将其编码为 JSON,然后在 JavaScript 中对其进行解码

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

You need to encode the data on the server and then decode them in the client. You can use JSON-RPC for this.

Here are few links:

Official Website

Wikipedia Article about JSON-RPC

Implementations of JSON-RPC Service in different languages

But you don't need to use JSON-RPC if you have only one value you can encode as JSON in ASP and then decode it in JavaScript

var array = JSON.parse(xmlHttp.responseText);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文