Welcome! Log In Create A New Profile

Advanced

nginScript send POST resquest

Posted by matke 
matke
nginScript send POST resquest
February 24, 2018 11:40AM
Hi,
I tried to send some POST request to remote server (as part of external
authentication), but I got message that XMLHttpRequest is undefined (or
similar error).
I saw later in this post
https://forum.nginx.org/read.php?2,275459,275459#msg-275459 answer that this
is not possible.

Can it help if NodeJS is installed, or nginScript it completely independent?
(I don't have much experience in any javascript stuff)

This is how my script looks:


function baz(req, res) {
    res.headers.foo = 1234;
    res.status = 200;
    res.contentType = "text/plain; charset=utf-8";
    res.contentLength = 22;
    res.sendHeader();
    res.send("Enginx ");
    res.send("java");
    res.send("script\r\n");
    var response = "resp";


    var data = "{\n  \"page\": 0,\n  \"count\": 1,\n  \"order\": 2,\n 
\"sort\": \"0\",\n  \"headers\": {\n    \"Access-Control-Allow-Origin\": [\n
     \"*\"\n    ]\n  }\n}";

    var xhr = new XMLHttpRequest();
    xhr.withCredentials = true;

    xhr.addEventListener("readystatechange", function () {
      if (this.readyState === 4) {
    //    console.log(this.responseText);
      }
    });

    xhr.open("POST", "https://remote.host/api/login";, false);

    xhr.setRequestHeader("origin", "https://localhost";);
    xhr.setRequestHeader("content-type", "application/json");
    xhr.setRequestHeader("referer", "https://localhost/";);
    xhr.setRequestHeader("accept-encoding", "gzip, deflate, br");
    xhr.setRequestHeader("accept-language",
"sr-RS,sr;q=0.9,en-US;q=0.8,en;q=0.7,hr;q=0.6,bs;q=0.5");
    xhr.setRequestHeader("cookie",
"securitytoken=eyJraWQiOiJ.......Swnq3xjEvXodQ");

    xhr.send(data);

    xhr.onreadystatechange = processRequest;

    function processRequest(e) {
        if (xhr.readyState == 4 && xhr.status == 200) {
            response = JSON.parse(xhr.responseText);
           // alert(response.ip);
        }
    }

    res.send(response);
    res.finish();
}

Posted at Nginx Forum: https://forum.nginx.org/read.php?2,278746,278746#msg-278746

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Roman Arutyunyan
Re: nginScript send POST resquest
February 26, 2018 01:00PM
Hi,

On Sat, Feb 24, 2018 at 05:37:45AM -0500, matke wrote:
> Hi,
> I tried to send some POST request to remote server (as part of external
> authentication), but I got message that XMLHttpRequest is undefined (or
> similar error).
> I saw later in this post
> https://forum.nginx.org/read.php?2,275459,275459#msg-275459 answer that this
> is not possible.

Exactly. It's not possible.

This page describes current state of njs:

http://nginx.org/en/docs/njs_about.html

> Can it help if NodeJS is installed, or nginScript it completely independent?
> (I don't have much experience in any javascript stuff)

NodeJS and nginScript are completely independent.

We are currently working on a solution, which allows making HTTP requests
from njs.

> This is how my script looks:
>
>
>
> function baz(req, res) {
>     res.headers.foo = 1234;
>     res.status = 200;
>     res.contentType = "text/plain; charset=utf-8";
>     res.contentLength = 22;
>     res.sendHeader();
>     res.send("Enginx ");
>     res.send("java");
>     res.send("script\r\n");
>     var response = "resp";
> 
> 
>     var data = "{\n  \"page\": 0,\n  \"count\": 1,\n  \"order\": 2,\n 
> \"sort\": \"0\",\n  \"headers\": {\n    \"Access-Control-Allow-Origin\": [\n
>      \"*\"\n    ]\n  }\n}";
> 
>     var xhr = new XMLHttpRequest();
>     xhr.withCredentials = true;
> 
>     xhr.addEventListener("readystatechange", function () {
>       if (this.readyState === 4) {
>     //    console.log(this.responseText);
>       }
>     });
> 
>     xhr.open("POST", "https://remote.host/api/login";, false);
> 
>     xhr.setRequestHeader("origin", "https://localhost";);
>     xhr.setRequestHeader("content-type", "application/json");
>     xhr.setRequestHeader("referer", "https://localhost/";);
>     xhr.setRequestHeader("accept-encoding", "gzip, deflate, br");
>     xhr.setRequestHeader("accept-language",
> "sr-RS,sr;q=0.9,en-US;q=0.8,en;q=0.7,hr;q=0.6,bs;q=0.5");
>     xhr.setRequestHeader("cookie",
> "securitytoken=eyJraWQiOiJ.......Swnq3xjEvXodQ");
> 
>     xhr.send(data);
> 
>     xhr.onreadystatechange = processRequest;
> 
>     function processRequest(e) {
>         if (xhr.readyState == 4 && xhr.status == 200) {
>             response = JSON.parse(xhr.responseText);
>            // alert(response.ip);
>         }
>     }
> 
>     res.send(response);
>     res.finish();
> }
>
>
> Posted at Nginx Forum: https://forum.nginx.org/read.php?2,278746,278746#msg-278746
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx

--
Roman Arutyunyan
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Sorry, only registered users may post in this forum.

Click here to login