angular - HTTP post 405 方法不允许

标签 angular typescript http post

如果这是一个新手问题或使用不准确的术语,我们深表歉意。因为我是新手。

我构建了一个简单的 python api 来读取和写入数据库(csv 文件) 我的前端是 Angular 5。 我设法从服务器上的文件中获取了完整的数据,但我无法发布到它。这是问题所在(似乎!)

我使用的方法是post,数据是一个JSON数组。

这是感兴趣的代码: component.ts 端:

this._svc.postAPI(this.csvData)
    .subscribe(
      res => console.log(res),
    error => alert('Error!'),
  ()=> 'Data Submitted to database') 
  }

services.ts 端:

postAPI(data): Observable<any>{
    return this.http.post(this.urlAPI, data);
  }

我收到的错误是 405 Method Not Allowed 并且控制台的网络显示:

一般

Request URL: http://192.168.0.2:5050/api
Request Method: OPTIONS
Status Code: 405 Method Not Allowed
Remote Address: 192.168.0.2:5050
Referrer Policy: no-referrer-when-downgrade

响应 header

Allow: POST
Content-Length: 23
Content-Type: text/plain; charset=utf-8
Date: Thu, 12 Jul 2018 03:20:39 GMT
Server: Python/3.5 aiohttp/2.3.10

请求 header

Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Access-Control-Request-Headers: content-type
Access-Control-Request-Method: POST
Connection: keep-alive
Host: 192.168.0.2:5050
Origin: http://evil.com/
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

使用 postman 一切正常,URL 似乎是正确的,但问题似乎出在数据本身。

我试过这些:

这没有用:

postAPI(data): Observable<any>{
return this.http.post(this.urlAPI, '{}');
}

但这确实有效:

postAPI(data): Observable<any>{
return this.http.post(this.urlAPI, '[{}]');
}

这确实有效:

postAPI(data): Observable<any>{
return this.http.post(this.urlAPI, '
[
    {
        "info": "A",
        "dev": "T",
        "but": "C",
        "msg": "X"
    }
]
');
    }

我相信我要发布的数据也是这种格式,一个 JSON 数组。

非常感谢任何帮助。

最佳答案

405 表示您的脚本有问题。考虑到一个版本有效,它不太可能是网络服务器。这种类型需要 [] 方括号。

关于angular - HTTP post 405 方法不允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51296992/

相关文章:

Angular4/5 : how to create folder, 文本文件并使用 typescript 将数据写入该文件

javascript - 如何在执行函数后重新加载 http.get 请求

javascript - 避免在浏览器上显示从 Spring @ResponseBody 返回的数据

javascript - 使用 *ngIf 中的 oidc-client 在 Angular 中实现 isLoggedIn() 函数

javascript - 在调用 ngOnInit() 之前,Angular 构造函数不会设置局部变量

angular - 从 Angular 中选择 Material 的上方删除文本

reactjs - 无法将引用转发到组件 TypeScript 错误

javascript - Sweetalert 中的服务无法运行

http - websockets 如何比简单的 HTTP 请求更快?

angular - 如何在提交之前强制表单验证?