Ajax “POST” not working on HTTPS/SSL Nginx

Posted January 12, 2018 8.5k views
Linux BasicsNginxCentOSLet's EncryptJavaScript

I moved my magento store from non SSL to SSL (webserver: Nginx)

The problem : The site’s JS scripts ( Multiple Ajax function with “POST” ) has stopped working! Requests are fine but not able to get the response. Response headers (501 B)

I am very much sure this is due to Nginx webserver misconfiguration. Do i need to use reverse proxy to use SSL? If so how? Kindly advise.

My Nginx example.conf looks like this:

    server {
        listen      189.xx.xx.xx:80;
        root        /home/example/public_html;
        index index.html index.php;
        return 301$request_uri;

& My Nginx ssl-domain.conf looks like this:

    listen      189.xx.xx.xx:443 default ssl;
    root        /home/example/public_html;
    index index.html index.php;    

    ssl on;
    ssl_certificate /etc/ssl/example.crt;
    ssl_certificate_key /etc/ssl/example.key;
    ssl_prefer_server_ciphers on;

    location / {
        try_files $uri $uri/ /index.php;
        expires 30d;   

  location ~* \.(gif|jpg|jpeg|pdf|txt|css|js|png|ico|xml|xml|gz)$ {
access_log  off;
    expires 30d;
    add_header Pragma public;
    add_header Cache-Control "public";

    location ~ \.php$ {
        expires off;
        fastcgi_read_timeout 900s;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/conf/fastcgi_params;


These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer


I just came across this old question.

Looking at your config, it looks like that you have to add $args to your / location:

location / {
    try_files $uri $uri/ /index.php?$args;
    expires 30d;