405 ошибка post запрос

405 Method Not Allowed: What It Is and How to Fix It

Jun 8, 2022 10:44:17 AM |
405 Method Not Allowed: What It Is and How to Fix It

An overview of what a 405 Method Not Allowed response is, including troubleshooting tips to help you resolve this error in your own application.

The 405 Method Not Allowed is an HTTP response status code indicating that the server received and recognized the specified request HTTP method, but the server rejected that particular method for the requested resource. This code response confirms that the requested resource is valid and exists, but the client has used an unacceptable HTTP method during the request.

Like most HTTP response codes — especially for those that indicate an error — it can be challenging to find the cause of a 405 Method Not Allowed response. 

In this article, we’ll examine the 405 Method Not Allowed in more detail. We’ll look at what might cause this message, along with a handful of tips for diagnosing and debugging the appearance of this error within your application. We’ll also examine popular content management systems (CMSs) for potential problem areas that could cause an unexpected 405 Method Not Allowed.

Server- or Client-Side?

All HTTP response status codes in the 4xx category are client error responses. This category contrasts with 5xx classification errors, such as the 503 Service Unavailable Error. These are server error responses. That said, the appearance of a 4xx error doesn’t necessarily mean the issue is on the client-side, where the “client” is the web browser or device being used to access the application. 

If you’re trying to diagnose an issue within your application, you can ignore most client-side code and components, such as HTML, cascading style sheets (CSS), client-side JavaScript, etc. This doesn’t apply solely to websites, either. Standard web applications power many smartphone apps that implement a modern-looking user interface.

On the other hand, this doesn’t entirely rule out the server as the actual cause of a 405 error. In some cases, the server may be mishandling requests. This could result in 405 code responses and other problematic traffic routing issues. We’ll explore some of these scenarios (and potential solutions) below. Be aware that, even though the 405 Method Not Allowed is considered a client error response, it doesn’t inherently mean we can rule out the client or the server as the culprit.

Start With a Thorough Application Backup

It is critical that you perform a complete backup of your application before attempting any fixes to the system. 

Even better, create a complete copy of the application onto a secondary staging server that isn’t active. This will give you a clean testing ground to test all potential fixes without threatening your live application.

Diagnosing a 405 Method Not Allowed

As discussed in the introduction, a 405 Method Not Allowed indicates that the user agent (the web browser, in most cases) has requested a valid resource using an invalid HTTP method. 

This could happen in a few different circumstances:

  • The user agent accidentally sent an incorrect HTTP method
  • The server is expecting only a handful of valid HTTP methods for the requested resource

Currently, there are nine possible HTTP methods, though some of them are far more prevalent than others. For example, the GET method handles most requests made on the Internet to retrieve data (i.e. “get” a page or resource). The POST method is the second-most common, and it’s typically used to send data to the server (such as login credentials).

Since each possible HTTP method has its own intended uses, it often doesn’t make sense for a server to accept requests using specific methods for particular resources. For example, a resource might exist at the URL https://airbrake.io/users/create, where the server creates a new user when valid credentials are sent via a POST HTTP method request. Therefore, it makes no sense for the server to accept a GET request at that resource/URL, so it may respond with a 405 Method Not Allowed code.

Troubleshooting on the Client-Side

Since the 405 response is a client error response code, it’s best to start troubleshooting any potential client-side issues. Here are a handful of tips to try on the browser or device giving you problems.

Check the Requested URL

The most common cause of a 405 Method Not Allowed is simply inputting an incorrect URL. As discussed before, many web servers will disallow access to improper URLs. 

This could be anything from trying to access a file directory via a URL to gaining access to a private page meant for other users. Double-check the exact URL returning the 405 Method Not Allowed error.

Debugging Common Platforms

If you’re running common software packages on the server responding with the 405 Method Not Allowed, you may want to look into the stability and functionality of those platforms. 

The most common content management systems (CMSs) — like WordPress, Joomla!, and Drupal — are typically well-tested. Once you start making modifications to the underlying extensions or PHP code, it’s easy to cause unforeseen issues resulting in a 405 error.

Troubleshoot some of these popular software platforms using the tips below.

Rollback Recent Upgrades

Suppose you recently updated the content management system before the 405 Method Not Allowed appeared. You may want to consider rolling back to the previous version you had installed when things were working fine. 

Similarly, any extensions or modules you may have recently upgraded can also cause server-side issues, so reverting to previous versions may also help. 

Simply Google “downgrade [PLATFORM_NAME] for assistance with this task.” In some cases, however, certain CMSs don’t provide a version downgrade capability, which indicates that they consider the base application and each new version released to be stable and bug-free. 

Uninstall New Extensions, Modules, or Plugins

New extensions, modules, and plugins within your CMS all serve the same purpose across every system: improving the capabilities and features of the platform beyond what it’s typically capable of out of the box. 

A word of caution: such extensions can take complete control of the system and make virtually any changes. As such, it may be wise to uninstall any new extensions if you suddenly see a 405 error. 

Check for Unexpected Database Changes

It’s worth noting that, even if you uninstall an extension through the CMS dashboard, this doesn’t guarantee that changes made by the extension will fully revert. This is particularly true for many WordPress extensions. Some of these extensions are given carte blanche within the application, including full access rights to the database. 

For example, some extensions modify database records that don’t “belong” to the extension itself but are instead created and managed by other extensions (or even the base CMS itself). The extension may not know how to revert alterations to database records, so it will ignore such things during uninstallation. 

Your best course of action is to open the database and manually look through records that the extension modified. 

Troubleshooting on the Server-Side

If you aren’t running a CMS application — or even if you are, but you’re confident the 405 Method Not Allowed error isn’t related to that — here are some additional tips to help you troubleshoot what might be causing the issue on the server-side of things.

Confirm Your Server Configuration

Your application is likely running on a server using one of these three popular webserver software: Apache, nginx, or Cloudflare. At the time of publication, these web servers make up over 86% of the world’s web server software! Check your configuration files for your web server software for unintentional redirect or request handling instructions.

Apache

To determine which web server your application uses, look for a key file. If your web server is Apache, look for an .htaccess file within the root directory of your website file system. 

For example, if your application is on a shared host, you’ll likely have a username associated with the hosting account. You can find the application root directory at the path of /home/<username>/public_html/, so the .htaccess file would be at /home/<username>/public_html/.htaccess.

Once you’ve located the .htaccess file, open it in a text editor. Look for lines that use RewriteXXX directives, which are part of the mod rewrite module in Apache. Covering exactly how these rules work is well beyond the scope of this article. However, the basic concept is that a RewriteCond directive defines a text-based pattern that is matched against entered URLs. Suppose a visitor requests a matching URL to the site. In that case, the RewriteRule directive that follows one or more RewriteCond directives is used to perform the actual redirection of the request to the appropriate URL.

For example, here is a simple RewriteRule that matches all incoming GET requests to https://airbrake.io/users/create and responds with a 405 Method Not Allowed error code:

RewriteEngine on

RewriteCond %{REQUEST_URI} ^/users/create/?.*$

RewriteCond %{REQUEST_METHOD} =GET

RewriteRule ^(.*)$ https://airbrake.io/users/new$1 [R=405,L]

Notice the R=405 flag at the end of the RewriteRule, which explicitly states that the response code should be 405. This indicates to user agents that the resource exists, but the provided HTTP method is not allowed. If you find any strange RewriteCond or RewriteRuledirectives in the .htaccess file that doesn’t belong, try temporarily commenting them out (using the # character prefix) and restarting your web server to see if this resolves the issue.

nginx

On the other hand, if your server is running on nginx, you’ll need to look for a completely different configuration file. By default this file is named nginx.conf. It’s located in one of a few common directories: /usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx. 

Once located, open nginx.conf in a text editor and look for directives that are using the 405 response code flag. For example, here is a simple block directive (i.e. a named set of directives) that configures a virtual server for airbrake.io and ensures that a POST request to https://airbrake.io/users/create fails and is responded with a 405 response code:

server { 

    listen 80;

    listen 443 ssl;    

    server_name airbrake.io;    

    location /users/create {

        if ($request_method = POST) {

            return 405 https://airbrake.io/users/create$request_uri;

        }

    }

}

Look through your nginx.conf file for any abnormal directives or lines that include the 405 flag. Comment out any abnormalities. Once that’s done, restart the server and see if the issue is resolved.

Configuration options for each different type of web server can vary dramatically. We’ll just list a few popular ones to give you some resources to look through:

  • Apache
  • Nginx
  • Cloudflare
  • IIS
  • Node.js
  • Apache Tomcat

Look Through the Logs

Nearly every web application will keep some form of server-side logs. Application logs are typically the history of what the application did, such as pages requested, connected servers, database results, etc. 

Server logs are related to the actual hardware running the application. Logs will often provide details about the health and status of all connected services or the server itself. 

Google “logs [PLATFORM_NAME]” if you’re using a CMS, or “logs [PROGRAMMING_LANGUAGE]” and “logs [OPERATING_SYSTEM]” if you’re running a custom application to get more information on finding the logs in question.

Debug Your Application Code or Scripts

If all else fails, it may be a problem in some custom code within your application. Manually debug your application and parse through application and server logs to diagnose where the issue may be coming from. Or, you can see the error in a manner of seconds using an error monitoring tool.

Airbrake’s error and performance monitoring software provides real-time error monitoring and automatic exception reporting for all development projects. In addition to this, Airbrake integrates with all popular languages and frameworks. Plus, Airbrake makes it easy to customize exception parameters, so you only gather the errors that matter.

See why so many of the world’s best engineering teams use Airbrake to revolutionize their exception handling practices and create your free dev account today. 

Note: We published this post in January 2018 and recently updated it in June 2022.

I have a problem in trying to do a POST request in my application and I searched a lot, but I did not find the solution.

So, I have a nodeJS application and a website, and I am trying to do a POST request using a form from this site, but I always end up in this:

enter image description here

and in the console I see :

    Uncaught TypeError: Cannot read property 'value' of null 
Post "http://name.github.io/APP-example/file.html " not allowed

that is in this line of code :

file.html:

<form id="add_Emails" method ="POST" action="">

    <textarea rows="5" cols="50" name="email">Put the emails here...
    </textarea>

        <p>
        <INPUT type="submit" onclick="sendInvitation()" name='sendInvitationButton' value ='Send Invitation'/>
        </p>


</form>

<script src="scripts/file.js"></script>

file.js:

function sendInvitation(){

    var teammateEmail= document.getElementById("email").value;

I read many post and a documentation of cross domain but it did not work.
research source 1:http://enable-cors.org/server.html
research source 2: http://www.w3.org/TR/2013/CR-cors-20130129/#http-access-control-max-age

What I am doing now:

I am trying to POST from a different domain of my server :

POST REQUEST : http://name.github.io/APP-example/file.html , github repository

POST LISTENER : «http://xxx.xxx.x.xx:9000/email , server localhost ( x-> my ip address)

So, I had the same problem in other files, but I fixed it putting this code in the begginning of each route:

var express = require('express');
var sha1 = require('sha1'); 

var router = express.Router(); 
var sessionOBJ = require('./session');

var teams = {} 
var teamPlayers = []

router.all('*', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.header("Access-Control-Allow-Methods", "PUT, GET,POST");
  next();
 });

and I fixed it doing it.

Now, I am having the same problem, but in this file the only difference is that I deal with SMTP and emails, so I post an email and send an Email to this email I received in the POST request.

THe code is working totally fine with POSTMAN, so, when I test with POSTMAN it works and I can post.

I included this code below instead of the first one I showed but it did not work as well:

router.all('*', function(req, res, next){
            res.header("Access-Control-Allow-Origin", "*")
            res.header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
            res.header("Access-Control-Allow-Headers", "Origin, Content-Type, Accept")
            res.header("Access-Control-Max-Age", "1728000")
            next();
        });

Does someone know how to solve it?

Thank you.

Ошибка HTTP 405 указывает на то, что сервер отклонил конкретный метод HTTP, используемый веб-браузером. Узнайте, почему он может появиться на вашем сайте и как быстро исправить его, не нанося ущерба вашей репутации в интернете.

Нет ничего более неприятного для потребителя, который ищет мгновенного удовлетворения, чтобы наткнуться на ошибку на вашем сайте. Если вместо того, чтобы найти нужную им информацию, они наткнутся на страницу с надписью “ошибка”, скорее всего, подавляющее большинство потребителей покинут ваш сайт.

Но помимо того, что потребители быстро уходят, вы также можете испытать разрушительные последствия для ваших коэффициентов конверсии. Не говоря уже о том, что поисковые системы также обращают внимание на показатели отказов. Ошибка, которая может появиться на вашем сайте и вызвать разочарование у потребителей — это Ошибка HTTP 405.

К сожалению, эта ошибка похожа на что-то мистическое. Она говорит вам, что что-то пошло не так, но не дает более подробного объяснения.

Хорошая новость заключается в том, что с помощью небольшого исследования и усилий с вашего сайта вы можете быстро определить суть проблемы и исправить ее, прежде чем заметите падение активности и продаж.

В этой статье мы поговорим о том, что такое Ошибка HTTP 405, почему она может появиться на вашем сайте, а также о том, как ее исправить. Давайте начнем!

HTTP 405 – это код состояния ответа HTTP. Существует пять видов кодов состояния HTTP-ответа. Все они сообщают пользователю, был ли успешно выполнен определенный HTTP-запрос. Пять основных кодов состояния включают в себя:

1xx коды состояния: Информационные запросы                                                                                                                          2xx коды состояния: Успешные запросы                                                                                                                                          3xx коды состояния: Перенаправление                                                                                                                                            4xx коды состояния: Ошибки клиента                                                                                                                                                  5xx коды состояния: Ошибки сервера

Сообщение об Ошибке 405 Method Not Allowed – это ошибка клиента, которая указывает на то, что проблема заключается в чем-то на стороне клиента.

Ошибка HTTP 405 указывает на то, что веб-браузер запросил доступ к одной из ваших страниц, и ваш веб-сервер распознал этот запрос. Однако сервер отклонил конкретный метод HTTP, который он использует. В результате ваш веб-браузер не может получить доступ к запрошенной веб-странице. Когда это произойдет, ваши посетители увидят веб-страницу с ошибкой.

Варианты имен Ошибок HTTP 405

Различные веб-серверы, операционные системы и браузеры отображают ошибку по-разному. Важно отметить, что причина проблемы также может меняться от одного сервера к другому.

Наиболее распространенные способы появления Ошибки HTTP 405 для потребителей включают в себя:

  • HTTP Ошибка 405 – Метод Не Дозволен
  • HTTP Метод Не Дозволен
  • 405 Не Дозволено
  • Метод Не Дозволен
  • HTTP Ошибка 405

Независимо от того, как появляется ошибка, будь то Ошибка HTTP 405 или Метод Не Дозволен, проблема одна и та же, и это то, что ее трудно исправить. Вы знаете, что что-то не так, но понятия не имеете, что это может быть. Вам предстоит найти суть проблемы и устранить ее до того, как она нанесет непоправимый ущерб.

Как исправить Ошибку 405?

Проверьте URL-адрес

Первое, что вам нужно сделать, когда вы видите Ошибку 405 на своем сайте – это проверить, правильно ли вы ввели URL-адрес.

Внимательно посмотрите на URL-адрес и убедитесь, что он содержит все правильные буквы.URL-адрес содержит какие-либо специальные символы, убедитесь, что они вставлены правильно.

Пока вы этим занимаетесь, вы также можете попробовать обновить страницу. Вы можете обнаружить, что обновление страницы может заставить ее правильно загрузиться. Если вы уверены, что ввели правильный URL-адрес, но все еще видите ошибку, выполните откат последних обновлений.

Откат последних обновлений

Большая часть веб-сайтов размещается на таких CMS, как WordPress или Wix. Вы можете обнаружить, что недавнее обновление системы может быть основной причиной проблемы.

Попробуйте подумать, когда вы впервые заметили Ошибку 405 на своем сайте. Это было сразу после того, как вы обновили CMS? Если это так, то подумайте о том, чтобы вернуться к предыдущей версии.

Удаление новых расширений, модулей или плагинов

Расширения и плагины могут быть полезны для улучшения возможностей вашего сайта, но они также могут нанести серьезный ущерб.

Некоторые расширения могут полностью контролировать вашу систему и вносить изменения в любой код, включая PHP, CSS, HTML, JavaScript и вашу базу данных. В этом случае рекомендуется удалить все новые расширения, которые вы недавно добавили в свою систему.

Если вам нужна помощь в удалении расширения, просто сделайте быстрый поиск в Google, чтобы найти официальную документацию для этого процесса.

Дважды проверьте изменения в своей базе данных

Иногда, даже если вы удалите расширение, изменения, внесенные этим расширением в систему, не могут быть полностью возвращены.

Есть некоторые расширения, особенно на CMS WordPress, которые имеют карт-бланш внутри приложения, который включает в себя полный доступ к базе данных. Расширение может изменять записи базы данных, которые не принадлежат самому расширению, а создаются и управляются другими расширениями. Когда это происходит, расширение может не знать, как вернуть изменения в записи базы данных, что приводит к тому, что расширение игнорирует такие вещи во время удаления.

Лучшее, что вы можете сделать в таком случае – это открыть базу данных и вручную просмотреть таблицы и записи, которые могли быть изменены расширением. Или вы можете провести быстрое исследование и попытаться найти людей, которые столкнулись с той же проблемой, чтобы увидеть, как они справились с этой проблемой.

Проверьте файлы конфигурации для вашего веб-сервера

Если двойная проверка изменений базы данных не помогла, попробуйте проверить файлы конфигурации программного обеспечения веб-сервера на наличие непреднамеренных инструкций перенаправления.

Ваше приложение работает либо на веб-серверах Apache, либо на веб-серверах nginx.

Если вы используете Apache, вам необходимо проверить как файл конфигурации сервера apache, так и файл конфигурации сервера apache файл .htaccess. После того, как вы найдете файл .htaccess, откройте его в текстовом редакторе и найдите строки, использующие указания RewriteXXX. В случае, если вы столкнетесь с какими-либо странными указаниями RewriteCond или RewriteRule, попробуйте временно сделать замечание, используя префикс символа #. Перезагрузите веб-сервер и посмотрите, устранена ли проблема.

Если вы используете nginx, вам нужно проверить nginx.conf файл. Файл находится в одном из нескольких общих каталогов: /usr/local/nginx/conf, /etc/nginx или /usr/local/etc/nginx. Как только вы найдете файл, откройте его в текстовом редакторе и выполните поиск указании, использующих флаг кода ответа 405. Сделайте замечания на любые аномалии, а затем перезагрузите сервер, чтобы увидеть, была ли проблема решена.

Проверьте журналы приложений

Журналы приложений содержат историю вашего веб-сайта, в том числе информацию о том, какие страницы были запрошены, к каким серверам он подключался и многое другое.

Открытие журналов приложений может указать вам правильное направление, в котором может возникнуть ошибка.

Расположение журналов приложений зависит от типа используемого сервера. Как только вы их найдете, запустите поиск Ошибок 405. Надеюсь, вы определите, что является основной причиной проблемы.

Отладка кода приложения или скриптов

Если вы перепробовали все вышеперечисленное и ничего не получилось, возможно, пришло время посмотреть, не является ли причиной ошибки проблема в каком-то пользовательском коде вашего приложения.

Вы можете поставить диагноз, вручную отладив приложение и проанализировав журналы приложений и серверов.

Сделайте копию приложения на локальную машину разработки и выполните пошаговую отладку. Вам удастся воссоздать точный сценарий, в котором произошел 405 Метод Не Дозволен, и просмотреть код приложения, когда что-то пойдет не так.

Заключение

Надеемся что наша подробная запись о кодах состояния HTTP, будет полезная для вас. Помните что регулярный контроль и техническое обслуживание помогут сохранить ваш сайт безупречным, а его владельца-беззаботным.

Понравилось то, что вы прочитали?

Подписывайтесь на нашу рассылку и получайте ежедневные обновления о новых учебниках, статьях, курсах и о многом другом! 

Просто введите ваш адрес электронной почты, чтобы подписаться.

(Без спамов; ежемесячно два письма; отписаться от рассылки можно в любое время)

.

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • 405 ошибка laravel
  • 405 ошибка http сервис 1с
  • 405 ошибка html
  • 405 ошибка asp net core

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии