Получить значение из AJAX, используя Javascript и ASP - PullRequest
0 голосов
/ 05 октября 2011

Я использую этот код Ajax.Но я не знаю, как я получу свое значение value1 на моем сервере asp, используя Javascript.

На моем сервере я хочу иметь что-то вроде <% 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>

Ответы [ 9 ]

2 голосов
/ 14 октября 2011

Клиентский Javascript не может запрашивать серверные базы данных по понятным причинам.Исходя из того, что вы, похоже, делаете, я бы предложил вам написать код ASP, который выполняет фактический запрос, используя VBA / C # / что угодно, и затем вы можете проанализировать результаты в вашем ajax-вызове на стороне клиента как обычно.

1 голос
/ 14 октября 2011
//(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);

        }
    });
}
1 голос
/ 14 октября 2011

Независимо от того, какие выходные данные серверного сценария будут получены запросом AJAX. Поэтому, если AJAX запрашивает что-то, серверная часть выполняет работу, получает результат из базы данных и затем выводит его.

Есть множество учебников о том, как именно это сделать. Просто убедитесь, что ваш скрипт правильно защищен, чтобы он не был открыт для злоупотреблений.

1 голос
/ 14 октября 2011

вы можете заставить страницу 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.*"}
    ]
};

тогда вы можете использовать встроенные парсеры в веб-браузерах или eval () (НЕ РЕКОМЕНДУЕТСЯ, СЕРЬЕЗНО !!!) для анализа данных, записанных на вашей странице asp, и использования их в вашем клиентском коде javascript.

Дополнительная информация о JSON Основная информация

JSON в браузерах:

1 голос
/ 12 октября 2011

xmlHttp.send правильно написано

  • Он не проверяет, есть ли у вас статус 200, прежде чем пытаться обработать данные.
  • Не удается кодировать данные, чтобы убедиться, что URL-адрес безопасен

Я бы предложил использовать библиотеку для обработки XHR, а не изобретать велосипед. Microjs содержит список множества маленьких библиотек, если вы не используете одну из больших (например, YUI или jQuery ).

как мне получить значения на стороне сервера, используя Javascript.

Это просто данные строки запроса, поэтому они будут в Request.QueryString.

1 голос
/ 11 октября 2011

URL кодирует _data и nbquestions переменные.Request.QueryString("param1") расшифрует их для вас.

JavaScript URLEncode:

escape(_data);

Также вы можете использовать методы Server.URLEncode () из сценария VB.

0 голосов
/ 13 октября 2011

Вам необходимо кодировать данные на сервере, а затем декодировать их в клиенте.Вы можете использовать JSON-RPC для этого.

Вот несколько ссылок:

Официальный сайт

Статья в Википедии о JSON-RPC

Реализации службы JSON-RPC на разных языках

Но вам не нужно использовать JSON-RPC, если у вас есть только одно значение, которое вы можете кодировать как JSON в ASP, а затем декодировать его в JavaScript

var array = JSON.parse(xmlHttp.responseText);
0 голосов
/ 12 октября 2011

Вот очень хороший учебник по 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);
0 голосов
/ 05 октября 2011

Когда ваш Ajax-запрос будет выполнен успешно, вы получите переменные строки запроса в QueryString-Collection объекта Request.

Может работать так на стороне сервера:

<% var newdata = Request.QueryString("value1"); %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...