#ajax #asp-classic
#ajax #asp-classic
Вопрос:
У меня есть файл asp, который вызывается с помощью Ajax-вызова, и я хочу получить для значений строку (ответ) и целое число (iNumberOfSomething). Значение «ответ» уже работает. Но как я могу добавить целочисленное значение в свой ajax-вызов, чтобы я мог использовать целочисленное значение?
myAjax.asp
...
sSQL = "dbo.MyFunction"
set oRs = MyFunction(sSQL)
if not oRs.eof then
iNumberOfSomething = cdbl(oRs("setting"))
end if
...
response.write "MyValue"
Мой ajax-вызов:
$.ajax({
cache: false,
type: "POST",
url: 'myAjax.asp',
data: {
Value1: value.toString(),
MyId: '<%= ID %>',
},
dataType: "json",
success: function(data) {
var sMessage = '';
...
if (data == "MyValue") {
...
}
if (data.iNumberOfSomething === 1) {
...
}
Ответ №1:
У вас есть несколько вариантов. Вы можете либо изменить свой сценарий ASP, чтобы возвращать JSON или XML, либо внести более простое изменение, чтобы возвращать результат в виде списка, разделенного запятыми (или табуляцией, или каким-либо другим разделителем). Вот пример того, как выполнить более поздний вариант.
myAjax.asp
...
sSQL = "dbo.MyFunction"
set oRs = MyFunction(sSQL)
if not oRs.eof then
iNumberOfSomething = cdbl(oRs("setting"))
end if
...
response.write "MyValue,AnotherValue,YetAnotherValue" 'Changed this line
И ваш ajax-вызов:
$.ajax({
cache: false,
type: "POST",
url: 'myAjax.asp',
data: {
Value1: value.toString(),
MyId: '<%= ID %>',
},
dataType: "json",
success: function(data) {
var sMessage = '';
...
//New code added here
var results = data.split(",");
if (results[0] == "MyValue") {
...
alert(results[1]);
alert(results[2]);
}
if (data.iNumberOfSomething === 1) {
...
}
В зависимости от ваших потребностей вы, вероятно, захотите установить еще несколько проверок, чтобы убедиться, что появилось правильное количество значений.
Если вы хотите использовать маршрутизатор JSON, вы можете использовать что-то вроде ASPJSON