No 'Access-Control-Allow-Origin' - Node / Apache Port Issue

后端 未结 13 1663
有刺的猬
有刺的猬 2020-11-22 02:27

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

13条回答
  •  伪装坚强ぢ
    2020-11-22 03:32

    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).

提交回复
热议问题