Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why browsers display CORS error in case of response 413?

I was testing an REST Api that uploads image file to server.

The image was too large and exceeded max request body size, so Nginx refused it and returned response 413(Request Entity Too Large).

Nginx: error.log

*329 client intended to send too large body: 1432249 bytes, client: xx.xx.xx.xx, server: api.example.com, request: "POST /images HTTP/1.1", host: "api.example.com", referrer: "https://example.com/posts/create"

However, I found that firefox/chrome console said,

Chrome: console

Access to XMLHttpRequest at 'https://api.example.com/images' from origin 'https://example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Is there any connection between CORS and 413 error? Where does this message comes from and why?

like image 364
kimchoky Avatar asked Mar 05 '20 02:03

kimchoky


People also ask

How do I fix the CORS problem in my browser?

Cross-Origin Resource Sharing (CORS) errors occur when a server doesn't return the HTTP headers required by the CORS standard. To resolve a CORS error from an API Gateway REST API or HTTP API, you must reconfigure the API to meet the CORS standard.

How do I fix Error 413 payload too large?

Nginx ServerOpen this file and check for the directive client_max_body_size. Then, change the value (in megabytes) to your maximum file size preference. This allows for a 64-megabyte upload. Set this number to your preference, save the file, then reload Nginx for the change to take effect.

Is CORS a browser issue?

CORS is a mechanism built into web browser. It's not a UI code issue. To fix CORS problems, you need to make changes on the API side.


2 Answers

The issue in this case is that the error response didn't have an appropriate Access-Control-Allow-Origin on it, so the requesting application didn't have permissions to view it. That is, even the error messages are subject to cross-origin policy.

like image 92
Brad Avatar answered Oct 04 '22 21:10

Brad


This issue is not related to CORS. If you fix 413 error then CORS error will also get fixed on its own. You need to check why 413 error is coming. The size of image upload is more. You can use below code for fixing the same Add below code in Startup file -

.UseStartup<Startup>()
        .UseKestrel(options =>
        {
          options.Limits.MaxRequestBodySize = long.MaxValue;
        });

If still it is not fixed then you need to check the default image size in server repo. It’s usually by default 1mb. You can increase client_max_body_size. This will fix your problem.

like image 42
Shakti Singh Avatar answered Oct 04 '22 21:10

Shakti Singh