Получите Классическую переменную ASP от отправленного JSON

Я пытаюсь отправить JSON через Ajax к Классической ASP-странице, которая получает значение, проверяет базу данных и возвращает JSON исходной странице.

Я могу отправить JSON через Ajax. Я могу возвратить JSON из ASP. Я не могу получить отправленный JSON в переменную ASP.

POST Вы используете Запрос. Сформируйте, ПОЛУЧИТЕ Вас Запрос использования. Querystring. Что я использую для JSON?

У меня есть библиотеки JSON, но они только показывают создание строки в сценарии ASP и затем парсинге это. Я должен проанализировать JSON от, будучи переданным внешняя переменная.

JavaScript

var thing = $(this).val();

$.ajax({
         type: "POST",
         url: '/ajax/check_username.asp',
         data: "{'userName':'" + thing + "'}",
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         cache: false,
         async: false,
         success: function() {
            alert('success');
         }
});

Файл ASP (check_username.asp)

    Response.ContentType = "application/json"
          sEmail = request.form() -- THE PROBLEM

          Set oRS = Server.CreateObject("ADODB.Recordset")
          SQL = "SELECT SYSUserID FROM dbo.t_SYS_User WHERE Username='"&sEmail&"'" 
          oRS.Open SQL, oConn
          if not oRS.EOF then 
            sStatus = (new JSON).toJSON("username", true, false)
          else
            sStatus = (new JSON).toJSON("username", false, false)
        end if
response.write sStatus
10
задан Michael Gaskill 20 May 2016 в 00:17
поделиться

4 ответа

Вы можете найти все опубликованные параметры с помощью этого кода.

FUNCTION getQueryString()
    dim queryLink, queryItemName
    queryLink = ""
    On error Resume Next
    For each queryItemName in Request.QueryString
        Execute(queryItemName & " = stripQuery(Request.QueryString(""" & queryItemName & """))")
        queryLink = queryLink & "&" & queryItemName & "=" & Request.QueryString(queryItemName)
    Next
    For each queryItemName in Request.Form
        Execute(queryItemName & " = stripQuery(Request.Form(""" & queryItemName & """))")
        queryLink = queryLink & "&" & queryItemName & "=" & Request.Form(queryItemName)
    Next
    On Error Goto 0
    getQueryString = queryLink
END FUNCTION

response.write getQueryString()
-1
ответ дан 4 December 2019 в 01:56
поделиться

Вы можете рассмотреть возможность перехода с VBScript на JScript ( JScript - это то, что Microsoft называет JavaScript).

Почему? Потому что тогда из классического ASP вы можете выполнять те же вызовы JSON, что и браузер, и считывать результаты в объекты JavaScript с помощью оператора eval ().

Пэдди Сказал: У меня нет ответа, но я вам очень сочувствую ... классический asp и обработка JSON - звучит весело.

@Paddy: Классические ASP и JSON - это весело, на самом деле это КАЧЕСТВО! (Если вы переключаетесь с VBScript и используете JScript.)

Обратите внимание, что вам не нужно выходить из VBScript cold-turkey, вы все равно можете взаимодействовать между ними в одном файле ASP, но если вы объявите JScript сначала вам нужно ограничить свой VBScript SUB или функциями и наоборот, иначе могут произойти непредсказуемые вещи.

Вот краткий пример того, о чем я говорю:

<%@ LANGUAGE="JScript" %>
<%

var days = VBDateDiff("d", "4/10/2010", "5/3/2010");
Response.write("JScript Calling VBScript function: days = " + days);


%> <script language="VBScript" runat="server">
function VBDateDiff(units, datebefore, dateafter)
    VBDateDiff = CStr(DateDiff(units, datebefore, dateafter))
end function

function VBDateAdd(units, nUnits, theDate)
    Response.write("<BR>VBDateAdd units=" & units & ", nUnits=" & nUnits & ", theDate=" & theDate)
    VBDateAdd = CStr(DateAdd(units, nUnits, theDate))
    Response.write(", VBDateAdd=" & VBDateAdd)
end function
</script> <%        

%>  
1
ответ дан 4 December 2019 в 01:56
поделиться

У меня такая же проблема, но очень скоро я выясню, как отправить объект json на сервер ASP.

Идея такая: не проверено. Усердно работай над этим> <.

Разберите объект json в строку, затем отправьте обратно на сервер (это типичная отправка строки)

на стороне ASP используйте библиотеку JSON для синтаксического анализа строки обратно в объект.

ссылка на библиотеку JSON http://code.google.com/p/aspjson/

'Я предполагаю, что люди, которые пытаются отправить JSON обратно в asp, должны обладать базовыми знаниями о публикации. Если потребуется дополнительная помощь, дайте мне знать

1
ответ дан 4 December 2019 в 01:56
поделиться

Обычно (новый VBArray (arr) .toArray ()) должен работать с SafeArray, что и возвращает Request.BinaryRead. Но это не так. Я нашел это решение, которое я исправил:

function GetRawRequestData() {
    var byteCount = Request.TotalBytes;
    var binary = Request.BinaryRead(byteCount)
    var reader = Server.CreateObject('ADODB.Recordset');
    reader.Fields.Append('x', 201, byteCount);
    reader.Open();
    reader.AddNew();
    reader.Fields(0).AppendChunk(binary);
    reader.update();
    return reader.Fields(0).Value;
}

благодаря комментарию Rasberry @ http://blogs.msdn.com/b/david.wang/archive/2006/07/04/howto-convert-between-jscript -array-and-vb-safe-array.aspx

Обратите внимание, что он может некорректно обрабатывать кодирование. Я не углублялся в то, что означает 201 для типа данных ADO, но это работает.

0
ответ дан 4 December 2019 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: