Good,
You messed up a couple of things:
At first, when I see, your request changed from POST to OPTIONS.
Why?
You are making cross-site HTTP requests (CORS), which means that your WebApp and your backend API are not in the same domain.
What happens live is that the request is preceded.
Prefilled query: by Mozilla MDN:
It uses methods other than GET, HEAD, or POST. Also, if POST is used, send the request data using Content-Type, other than application / x-www-form-urlencoded, multipart / form-data or text / plain, for example if the POST request sends an XML payload to the server using application / xml or text / xml, then the request is preceded.
This means that any request next to GET, HEAD or POST will be changed to OPTIONS AND: Also POST if used to send data with a Content-Type other than application/x-www-form-urlencoded, multipart/form-data, or text/plain
Now I understand, but what to do? I have to make a POST request!
You do not have many parameters, since CORS is defined on the server.
But on the client, you can do this (example): change the encoding type in angular as follows: $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
OR
Install the server to approve CORS as follows:
Access-Control-Allow-Headers: Content-Type \\ This will allow you to set content type header in the client. Access-Control-Allow-Methods: GET, POST, OPTIONS \\ This will allow you to send GET POST and OPTIONS, which is necessary because of preflighted requests. Access-Control-Allow-Origin: * \\ This will allow anyone to perform CORS requests.
Good luck