i\'ve created a small API using Node/Express and trying to pull data using Angularjs but as my html page is running under apache on localhost:8888 and node API is listen on
Apart from all listed answers, I had the same error
I have both access to frontend and backend, I already added cors module app.use(cors());
Still, I was struggling with this error.
After some debugging, I found the issue. When I upload a media which size was more than 1 MB then the error was thrown by Nginx server
413 Request Entity Too Large
413 Request Entity Too Large
nginx/1.18.0
But in the console of frontend, I found the error
Access to XMLHttpRequest at 'https://api.yourbackend.com' from origin 'https://web.yourfromntend.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
So It makes confusion here. But the route cause of this error was from nginx configuration. It's just because the directive client_max_body_size
value has been set to 0 by default. It determines what the allowable HTTP request size can be is client_max_body_size
. This directive may already be defined in your nginx.conf file located at /etc/nginx/nginx.conf
Now you need to add/edit the value of the directive client_max_body_size
either at http
or server
.
server {
client_max_body_size 100M;
...
}
Once you have set your desired value, save your changes and reload Nginx: service nginx reload
After these changes, It's working well
REFERENCE: https://www.keycdn.com/support/413-request-entity-too-large#:~:text=%23,processed%20by%20the%20web%20server.&text=An%20example%20request%2C%20that%20may,e.g.%20a%20large%20media%20file).