Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Richieste POST bloccate

    ciao!

    sto sviluppando una piccola web app con react.
    per l'invio delle richieste uso axios.

    1) Lettura
    per quanto riguarda la lettura dei dati da db non ho problemi:
    codice:
    axios.get(BOOK_ALL)
        .then(res => {
            this.setState({
                books: res.data.books
    });
        });
    e questo il codice PHP:
    codice:
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    ...............................
    2) Cancellazione
    qui ho problemi:
    codice:
    Bloccata richiesta multiorigine (cross-origin): il criterio di corrispondenza dell’origine non consente la lettura della risorsa remota da https://www.sito.com/api/book/del.php. Motivo: richiesta preliminare (“preflight”) del canale CORS non riuscita.
    
    
    
    Bloccata richiesta multiorigine (cross-origin): il criterio di corrispondenza dell’origine non consente la lettura della risorsa remota da https://www.sito.com/api/book/del.php. Motivo: richiesta CORS non riuscita.
    
    
    
    Error: "Network Error"    createError createError.js:17
    
        handleError xhr.js:80
    
    
    
     home.js:28
    questo il codice js:
    codice:
    axios.post(BOOK_DEL, {id: 'hhhhh'})
        .then((response) => {
            console.log(response);
        }, (error) => {
            console.log(error);
        });
    e questo il codice PHP:
    codice:
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    header("Access-Control-Allow-Methods: POST");
    header("Access-Control-Max-Age: 3600");
    header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
    sinceramente non capisco e non so che fare.
    qualche idea??

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    La richiesta preflight dovrebbe essere la richiesta OPTIONS che probabilmente non funziona perchè tu autorizzi solo POST quindi io proverei così:

    codice:
    header("Access-Control-Allow-Methods: POST, OPTIONS");

  3. #3
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    La richiesta preflight dovrebbe essere la richiesta OPTIONS che probabilmente non funziona perchè tu autorizzi solo POST quindi io proverei così:

    codice:
    header("Access-Control-Allow-Methods: POST, OPTIONS");
    ciao!

    il problema era il content-type.
    sul server:
    Codice PHP:
    header("Access-Control-Allow-Origin: *");
    header('Access-Control-Allow-Methods: GET, POST');
    header("Access-Control-Allow-Headers: X-Requested-With");
    header("Content-Type: application/x-www-form-urlencoded"); 
    sul client:
    codice:
            axios.post(BOOK_DEL, "id=" + rowKeys, {
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            }).then((response) => {
                // console.log(response);
            }, (error) => {
                // console.log(error);
            });
    ha funzionato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.