表单提交 "Same Origin Policy" 错误 Angular
FormSubmit "Same Origin Policy" Error Angular
所以我在我的 Angular 应用程序中使用这个超级酷的 FormSubmit 服务来提交联系人。我在 Angular HttpClient
的帮助下发送表单数据。
以下是我的服务:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class FormsubmitService {
constructor(
public httpClient: HttpClient
) { }
sendForm(formData: object) {
console.log('Form Data:', formData);
this.httpClient.post('https://formsubmit.io/send/<TOKEN HERE>', formData)
.subscribe((response) => console.log(response), (error) => console.log(error));
}
}
提交后我在控制台日志中收到此错误 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://formsubmit.io/error/. (Reason: CORS header 'Access-Control-Allow-Origin' missing)
。
有什么办法可以解决这个问题吗?
当你想访问来自不同来源的资源时,需要使用 Access-Control-Allow-Origin
header 允许它。当你 post 到 formsubmit.io/send
它 returns 以下 header:
Access-Control-Allow-Origin: *
还没有问题,因为 formsubmit.io
明确表示它允许从任何来源访问 (*)。但是,由于一些与 CORS 无关的错误,它使用 Location
header 将您重定向到 formsubmit.io/error
.
Location: /error/?error=...
您的浏览器会自动向该地址发送 GET
。这个新地址不会发送任何 Access-Control-Allow-Origin
header,因此您的浏览器会阻止它。您可以在开发工具的 Network
选项卡中查看请求的 URL 中的错误并修复它。
所以我在我的 Angular 应用程序中使用这个超级酷的 FormSubmit 服务来提交联系人。我在 Angular HttpClient
的帮助下发送表单数据。
以下是我的服务:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class FormsubmitService {
constructor(
public httpClient: HttpClient
) { }
sendForm(formData: object) {
console.log('Form Data:', formData);
this.httpClient.post('https://formsubmit.io/send/<TOKEN HERE>', formData)
.subscribe((response) => console.log(response), (error) => console.log(error));
}
}
提交后我在控制台日志中收到此错误 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://formsubmit.io/error/. (Reason: CORS header 'Access-Control-Allow-Origin' missing)
。
有什么办法可以解决这个问题吗?
当你想访问来自不同来源的资源时,需要使用 Access-Control-Allow-Origin
header 允许它。当你 post 到 formsubmit.io/send
它 returns 以下 header:
Access-Control-Allow-Origin: *
还没有问题,因为 formsubmit.io
明确表示它允许从任何来源访问 (*)。但是,由于一些与 CORS 无关的错误,它使用 Location
header 将您重定向到 formsubmit.io/error
.
Location: /error/?error=...
您的浏览器会自动向该地址发送 GET
。这个新地址不会发送任何 Access-Control-Allow-Origin
header,因此您的浏览器会阻止它。您可以在开发工具的 Network
选项卡中查看请求的 URL 中的错误并修复它。