I am trying to submit a POST
request to a server which only accepts the data in the x-www-form-urlencoded
format.
When I test it out on Postman, it works. For example, the preview header looks like:
POST /api/signin HTTP/1.1
Host: myproj.herokuapp.com
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
email=joe%40gmail.com&password=1234567
However, when I run it from my app, the header, as viewed in Chrome console, looks like:
Remote Address:10.10.10.250:80
Request URL:http://myproj.herokuapp.com/api/signIn
Request Method:POST
Status Code:400 Bad Request
Request Headersview source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:53
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Host:rapidit.herokuapp.com
Origin:http://localhost
Referer:http://localhost/rapid/v3/src/app/index/
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
Form Dataview parsed
{"email":"[email protected]","password":"1234567"}
Clearly, it's not sending the data in the right format.
This is what it looks like in my Angular factory (with hardcoded login data):
var LoginResource = $resource("http://myproj.herokuapp.com/api/signIn", {}, {
post: {
method: "POST",
isArray: false,
headers: {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}
});
var loginUser = function (){
return LoginResource.post(
{
email: "[email protected]",
password: "1234567"
}
).$promise; //this promise will be fulfilled when the response is retrieved for this call
};
return loginUser;
How can I get the data to POST in the required format?