gpt4 book ai didi

Typescript CORS 已启用但仍然出现 CORS 错误

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:19 24 4
gpt4 key购买 nike

<分区>

我在我的 Angular 7.0.5 项目中添加了一个 cors header ,但在提交表单并将表单数据发送到“后端”(谷歌脚本)时我仍然收到以下错误:

在“https://script.google.com/blabla”访问 XMLHttpRequest '来自原产地' http://localhost:4200 ' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin” header 。

当我在禁用安全功能的 Chrome 中尝试此操作时,我没有收到此错误。

可能是语法错误,但我已经搜索了很长时间并尝试了很多方法,但我无法让它工作。

import {Component, OnInit} from '@angular/core';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {HttpClient, HttpParams, HttpHeaders} from '@angular/common/http';
import {ContactFormDto} from '../services/dto/contactform.dto';

const headers = new HttpHeaders()
.set('Content-Type', 'undefined')
.set('Access-Control-Allow-Origin', '*')
.set('Access-Control-Allow-Methods', 'POST')
.set('Access-Control-Allow-Headers', 'Origin')
.set('Access-Control-Allow-Credentials', 'true');

@Component({
selector: 'app-contact',
templateUrl: './contact.component.html',
styleUrls: ['./contact.component.sass']
})

export class ContactComponent implements OnInit {

contactForm: FormGroup;
submitted = false;

MAIL_SCRIPT_URL =
'https://script.google.com/scriptlocation';

private contactFormDto: ContactFormDto;

constructor(private formBuilder: FormBuilder, private http: HttpClient) {
this.contactForm = this.formBuilder.group({
name: ['', Validators.required],
email: ['', Validators.required],
message: ['', Validators.required],
});
}

onSubmit() {
this.submitted = true;
if (this.contactForm.valid) {
this.contactFormDto = new ContactFormDto(
this.contactForm.controls.name.value,
this.contactForm.controls.email.value,
this.contactForm.controls.message.value
);

this.http.post(
this.MAIL_SCRIPT_URL,
this.contactFormDto,
{headers}
).subscribe(data => {
console.log('Mail has been sent' + data);
}, error => {
console.log('Mail has not been sent ' + error);
});

console.log('name: ' + this.contactForm.controls.name.value + ' email: ' +
this.contactForm.controls.email.value + ' message: ' +
this.contactForm.controls.message.value);
}
}

ngOnInit() {
}

“后端”是一个谷歌脚本(当我将表单结果发布到 url 时运行)

var TO_ADDRESS = "myaddress@gmail.com"; // where to send form data

function doPost(e) {

try {
Logger.log(e); // the Google Script version of console.log see: Class
Logger
MailApp.sendEmail(TO_ADDRESS, "Contact Form Submitted",
JSON.stringify(e.parameters));
// return json success results
return ContentService
.createTextOutput(
JSON.stringify({"result":"success",
"data": JSON.stringify(e.parameters) }))
.setMimeType(ContentService.MimeType.JSON);
} catch(error) { // if error return this
Logger.log(error);
return ContentService
.createTextOutput(JSON.stringify({"result":"error", "error": e}))
.setMimeType(ContentService.MimeType.JSON);
}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com