Sample code for 30+ languages & platforms
JavaScript

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.
Note
This example is intended for running within a Chilkat.Js embedded JavaScript engine. All Chilkat JavaScript examples require Chilkat v11.4.0 or greater.
JavaScript
var success = false;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

var http = new CkHttp();

// The FollowRedirects property controls whether redirects
// are automatically followed.  The default behavior is to
// automatically follow redirects.

// Explicitly set FollowRedirects so that redirects are NOT automatically taken:
http.FollowRedirects = false;

var resp = new CkHttpResponse();
success = http.HttpNoBody("GET","http://yandex.ru/",resp);
if (success == false) {
    console.log(http.LastErrorText);
    return;
}

var status = resp.StatusCode;
console.log("HTTP Response Status: " + status);

// The FinalRedirectUrl property will contain the redirect URL
// If FollowRedirects was equal to true, then all of the 
// intermediate redirects (if any) would be followed until
// there were no more redirects.  However, because 
// FollowRedirects is not true, FinalRedirectUrl contains
// the next redirect URL.

var loopCount = 0;

while ((status == 302)) {

    console.log("Redirect URL: " + http.FinalRedirectUrl);

    var nextUrl = http.FinalRedirectUrl;
    success = http.HttpNoBody("GET",nextUrl,resp);
    if (success == false) {
        console.log(http.LastErrorText);
        return;
    }

    status = resp.StatusCode;
    console.log("HTTP Response Status: " + status);

    // For safety, prevent infinite loops by
    // keeping a loopCount and only allows following a max 
    // of 10 redirects:
    loopCount = loopCount+1;
    if (loopCount > 10) {
        console.log("Too many redirects.");
        return;
    }

}