如果这是一个新手问题或使用不正确的术语表示歉意。因为我是新手。
我构建了一个简单的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方法不允许,并且控制台的网络显示:
常规
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
响应标题
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
请求标头
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
使用邮递员,一切正常,URL似乎正确,但是问题似乎出在数据本身上。
我尝试了这些:
这不起作用:
postAPI(data): Observable<any>{
return this.http.post(this.urlAPI, '{}');
}
但此DID起作用:
postAPI(data): Observable<any>{
return this.http.post(this.urlAPI, '[{}]');
}
此DID起作用:
postAPI(data): Observable<any>{
return this.http.post(this.urlAPI, '
[
{
"info": "A",
"dev": "T",
"but": "C",
"msg": "X"
}
]
');
}
我相信我要发布的数据也采用这种精确格式,即JSON数组。
非常感谢您的协助。
答案 0 :(得分:0)
405表示您的脚本有问题。考虑到一个版本有效,它不太可能是Web服务器。您需要为此类型加上[]括号。