Setting a timeout for a ServerXMLHTTP request

Does anyone know how to configure the default action setting when ServerXMLHTTP timeout? I am using setTimeouts () to set the timeout parameters according to the MSDN website .

Ideally, I would like to initialize the request again from the very beginning or refresh the page if it is disabled.

I am using classic asp and jscript.

Here is my request:

function serverXmlHttp(url) {
    var serverXmlHttp;
    serverXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0");

    // set time out options
    serverXmlHttp.setTimeouts(15000,15000,15000,15000);

    // does not work
    // serverXmlHttp.ontimeout(Response.Write("page has timed out"));

    serverXmlHttp.open("GET", url, false);
    serverXmlHttp.send();

    if (serverXmlHttp.readyState == 4) {
        return serverXmlHttp.responseText;
    }
}
+3
source share
2 answers

Figured it out. I just need to use the try / catch statement.

function serverXmlHttp(url) {

    try {
        var serverXmlHttp;
        serverXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0");

        // set time out options
        serverXmlHttp.setTimeouts(15000,15000,15000,15000);

        serverXmlHttp.open("GET", url, false);
        serverXmlHttp.send();

        if (serverXmlHttp.readyState == 4) {
            return serverXmlHttp.responseText;
        }
    catch(error) {
        // whatever I want to happen if there an error
        Response.Write("Sorry, your request has timed out");
    }

}
+3
source

It is important to find out why this time.

URL- , ?

, INFO: ServerXMLHTTP WinHTTP .

+4

Source: https://habr.com/ru/post/1769427/


All Articles