I'm trying to send an ajax post request to a node.js microservice through nginx. The requuest is as follows:
$.post('http://localhost:80/api/signup', formData, function( data, status) {
    console.log(JSON.stringify(data));
    console.log(JSON.stringify(status));
        }).done(function(data, status) {
            alert( "second success" );
            console.log(JSON.stringify(data));
            console.log(JSON.stringify(status));
        })
        .fail(function(data, status) {
            console.log('error');
            console.log(JSON.stringify(data));
            console.log(JSON.stringify(status));
        })
        .always(function(data, status) {
            console.log(JSON.stringify(data));
            console.log(JSON.stringify(status));
            console.log('fiished');
        });
The request reaches the microservice. But the response is as follows (which is always the error function):
"data" is always:
{"readyState":0,"status":0,"statusText":"error"}
And the "status" is always:
error
which is not the expected response at success nor failure. How can I fix this?
Moreover, "formData" parameters appear as queries on the url once submitted. How can I stop that?
Update*
I have also tried adding event.preventDefault(); but now it gives me the following:
 XMLHttpRequest cannot load http://localhost:3000/api/signup. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
{"readyState":0,"status":0,"statusText":"error"}
I have also tried:
$.ajax({  
        type: "POST",  
        url: "http://localhost:3000/api/signup",  
        data: JSON.stringify(formData),  
        success: function(dataString) {  
            console.log(JSON.stringify(dataString));
        }, error: function(error) {
            console.log(JSON.stringify(error));
        }
    });
But got the same No 'Access-Control-Allow-Origin' header is present on the requested resource as above.
Update There is a valid and possibly more detailed answer on "No 'Access-Control-Allow-Origin' header is present on the requested resource". However, I find the answer I accepted here more direct and clear.
 
    