angular - 不允许使用 Bottle 服务器 CORS 处理 Angular HTTP 请求
问题描述
我正在尝试将数据从我的 Angular 9 应用程序提交到瓶子后端服务器。在客户端,我收到了 CORS 错误,即缺少“Access-Control-Allow-Origin”标头。它还说同源规则正在阻止请求。在后端,它只打印状态代码 405。但是,当我通过 Postman 执行请求时,一切正常。我必须做哪些更改才能使其正常工作?我希望它也能在生产模式下工作。这是我的代码:Angular component.ts:
onSubmit(form) {
console.log(form.value);
this.http.post('http://localhost:8080/contact', form.value).subscribe();
}
我的瓶子后端服务器:
@post('/contact')
def progress_contact():
response.set_header('Content-Type', 'application/json')
response.set_header('Access-Control-Allow-Origin', 'http://localhost:4200')
response.set_header('Access-Control-Allow-Methods', 'PUT, GET, POST, OPTIONS, DELETE')
response.set_header('Access-Control-Allow-Headers', 'Access-Control-Allow-Origin, Content-Type, Accept, Accept-Language, Origin, User-Agent')
print(request)
print(request.POST.moin)
print(request.POST.email)
return 'hello'
正如我所提到的,当通过 Postman 执行 POST 请求时,我在响应对象中得到“你好”,并且服务器也会打印我发送的值。
解决方案
您需要在后端代码中允许 cors。由于角度的预检请求而您遇到问题,并且您的后端代码不允许使用 cors。有多个选项可以允许 cors,在这里你也可以使用 pypi 上的包。 https://pypi.org/project/bottle-cors/
推荐阅读
- sql-server - 不允许 MSSQL sp_dropextended 属性
- google-apps-script - 带有摘要身份验证问题的 Google App Script 提取请求
- swift - Firebase 实时数据库:queryOrdered 和 queryEqual 快照不运行
- python - 使用 selenium 下载 pdf
- javascript - 通过 Fetch 在 API 调用中获取未定义 - Express Nuxt
- android - 如何更改扫描线的粗细?在card.io Android中以及如何删除EXTRA_SCAN_INSTRUCTIONS?
- javascript - 如何使用拆分根据条件分隔字符串?
- svn - svn log and and and blame 有冲突的修订
- php - 在 PHP 7.2 中进行 Curl 安装,但在应用程序中不起作用
- react-router - 在react-router中,为什么页面的公共元素应该是Router的子元素?