0

Ajax経由でサーバーにデータを送信するためのファイルがあり、いくつかのライブラリを試しましたが、それらを機能させることができないため、ASPサーバーファイルで単純なRequest.Form()メソッドを試していますが、どちらも機能していません.

Ajax の投稿:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://localhost/serv/sync.asp", true);
DataToSend = "id=1";                
xmlhttp.addEventListener("load", function () {
    if(xmlhttp.status === 200){
        //event handler
    };
}, false); 
xmlhttp.send(DataToSend);

ASP ファイル:

<%@language=vbscript%>
<%
    value = Request.Form("id")
    Response.ContentType = "text/xml"
    response.write (value) 
%>

これの何が問題なの?コンソールで Post とその動作を確認しましたが、サーバー側で値をキャッチできません。

元のアイデアは、Json 文字列を送信し、サーバーで解析し、dataBase の挿入を行うことでしたが、動作させることができませんでした。動作するスニペットや、Classic ASP で動作する Json 解析メソッドへのリンクを持っている人はいますか? ありがとう。

注: スレッドの問題により、サーバー ファイルを別のフォルダーに変更し、URL を「http://127.0.0.1/serv/sync.asp」に変更してみました。

4

1 に答える 1

1

私はこれを成功させました:

JS:

if (window.XMLHttpRequest) {
    httprequest = new XMLHttpRequest();
    httprequest.texto = busca.id;
} else if(window.ActiveXObject) {
    httprequest = new ActiveXObject("Microsoft.XMLHTTP");
    httprequest.texto = busca.id;
} else {
    alert("Seu navegador não suporta Ajax.");
    return false;
}

if (httprequest.readyState == 4 || httprequest.readyState == 0) {
    var busca = escape("texto texto texto");

    httprequest.open("POST", "../busca_ajax.asp", true);
    httprequest.onreadystatechange = retornaValores; 
    httprequest.send("busca=" + busca + "&teste=2");
}

function retornaValores() {
    if (httprequest.readyState == 4) {
        alert(httprequest.responseText);        
    }
}

ASP:

 dim busca
 busca = trim(request("busca"))

 response.write busca

編集:

可能であれば、jQuery を使用することをお勧めします。これにより、プロセスが大幅に簡素化されます。

$.ajax({
    url: "lista.asp",
    data: { 'ajax': 's', 'dados': '{"id": 123, "nome":"teste"}'},
    cache: false,
    dataType: "json",
    success: function(dados) {
        alert(dados);
    },
    error: function() {
        alert("ERRO!");
    }
});

ASP:

dim ajax, id
ajax = request.form("ajax")
dados = request.form("dados") ' this is a JSON string

response.write dados    
于 2012-12-21T11:52:28.497 に答える