admin管理员组

文章数量:1290957

I created an online form with React and hosted it on Vercel... I need the data submitted in the form to fall into the spreadsheet in the sheets. But it gives this error

Access to fetch at link do site '' from origin has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

My script in google sheets is this:

function doPost(e) {
  var headers = {
    "Access-Control-Allow-Origin": "*", 
    "Access-Control-Allow-Methods": "POST", 
    "Access-Control-Allow-Headers": "Content-Type", 
  };

  
  if (e.postData.contents) {
    var data = JSON.parse(e.postData.contents); 

    
    var sheet = SpreadsheetApp.openById('id da planilha').getSheetByName('Página1');

    
    var nome = data.nome || '';  
    var email = data.email || '';  
    var mensagem = data.mensagem || ''; 

    
    sheet.appendRow([nome, email, mensagem]); 
    return ContentService.createTextOutput("Dados recebidos com sucesso!")
      .setMimeType(ContentService.MimeType.JSON)
      .setHeaders(headers);
  } else {
    
    return ContentService.createTextOutput("Erro ao receber os dados.")
      .setMimeType(ContentService.MimeType.JSON)
      .setHeaders(headers);
  }
}

I used to fetch:

try {
        const response = await fetch(";, {
          method: "POST",
          headers: { "Content-Type": "application/json" },
          body: JSON.stringify(formData),
        });
      
        
        if (response.ok) {
          const data = await response.json();
          console.log("Resposta da API:", data);
          alert("Dados enviados com sucesso!");
        } else {
          
          const errorData = await response.json();
          console.error("Erro na resposta:", errorData);
          alert("Erro ao enviar os dados: " + (errorData.message || "Erro desconhecido"));
        }
      } catch (error) {
        
        console.error("Erro ao enviar os dados:", error);
        alert("Ocorreu um erro ao enviar os dados.");
      }

    }
  }

I've already tried several aspects of the script, but still without success. I'm starting to think there's no way.

本文标签: javascriptI had a color error in my projectreact and google sheetsStack Overflow