Puncte:0

Metoda de postare jQuery AJAX aruncă eroarea 405 (Metoda nu este permisă).

drapel cn

Sunt nou în AJAX și am învățat recent funcțiile metodelor jQuery get() și post(). În timp ce metoda get() a funcționat fără probleme, m-am clătinat când am întâlnit metoda post(), care afișează o eroare care spune: „405 (Metoda nu este permisă)” de fiecare dată când încerc să o invoc.

Folosind Bootstrap, am un fișier HTML simplu numit get_post.html care are fiecare div, paragraf și elemente de buton. Folosind jQuery, la evenimentul de clic al butonului, trimit un nume și o locație folosind metoda post() la un fișier php numit mypost.php care va procesa datele și va trimite un șir de mesaj înapoi la get_post.html. Vreau să arăt mesajul final în elementul paragraf al get_post.html. În timp ce încerc să realizez acest lucru, de fiecare dată când dau clic pe buton, consola browserului afișează mesajul de eroare menționat mai sus. Presupunând că problema este oarecum legată de politica CORS, trebuie să menționez că atât fișierele get_post.html, cât și mypost.php se află în același folder sub același domeniu. Deci, cum de este o eroare legată de politica CORS? Mai mult, folosesc Node.js http-server localhost pentru a rula fișierul get_post.html. Prin urmare, orice problemă legată de localhost este puțin probabilă. În plus, am activat și dezactivat CORS în timp ce rulam http-server, dar nu a avut niciun rezultat. Am încercat și eu să folosesc IIS, dar aceeași problemă apare și acolo.

Deci, ce ar putea cauza eroarea și cum pot scăpa de ea? Deoarece sunt nou în AJAX, nu sunt prea obișnuit cu complexitățile acestuia. Majoritatea soluțiilor online nu au legătură cu scenariul meu; prin urmare, nu am putut obține prea mult ajutor de la ei. Vă rugăm să ajutați la rezolvarea problemei, dacă este posibil cu un exemplu de nivel de bază.

cod get_post.html:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <!-- Latest compiled and minified CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">

        <!-- jQuery library -->
        <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.js"></script>

        <!-- Popper JS -->
        <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js"></script>

        <!-- Latest compiled JavaScript -->
        <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>

        <title>Document</title>
    </head>
    <body>
        <div class="container">
            <p id="loadedData">This is where data will be loaded from server dynamically.</p>
            <button class="btnLoad btn btn-primary">Load Data</button>
        </div>
        <script type="text/javascript">
             $(document).ready(function() {
                $(".btnLoad").click(function() {
                    // Fetching data using post() method.
                    $.post("mypost.php", {
                        name: "Firstname Lastname",
                        location: "Countryname"
                    }, function(data, status) {
                        $("#loadedData").html(data);
                        alert(status);
                    });
                });
             });
        </script>
    </body>
</html>

codul mypost.php:

<?php
    $name = $_POST["name"];
    $location = $_POST["location"];

    echo "This is ".$name.". I'm from ".$location".";
?>

Multumiri si urari de bine!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.