【发布时间】:2017-05-27 05:06:57
【问题描述】:
我正在通过后端的 REST api 构建一个小型 Angular 前端支持,但我遇到了一个非常奇怪的问题:执行 http.post(url, data, params) 没有发生任何事情(没有迹象表明请求曾经访问过网络服务器,在 Chrome 开发者工具中,绝对没有记录请求,这与 this.http.get() 请求相反,后者适用于同一服务器上的 URL)。
export class RestComponent {
constructor ( private http: Http ) {}
sendStuff() {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
this.http.post('http://localhost:3021/api/data', {'data': 3}, options)
.catch(this.handleError);
}
}
- 在服务器上启用了 CORS
- URL 上的 this.http.get 可以正常工作
- 服务器日志中没有证据表明请求曾经发送过
- Chrome 开发者工具中没有证据表明请求已发送(没有此类发布请求)
- 在 .post() 调用之前在方法中记录内容表明一切都符合预期(标头、数据等)
- 在 Postman 中复制请求(相同的标头和数据)
- 也尝试过对数据进行字符串化
- 错误处理程序执行一些简单的日志记录,但未触发
我觉得很愚蠢,因为它一定是相当明显的东西,但它却让我无法理解。我创建了一个简单的组件,它只有两种方法,一种通过 post 发送硬编码数据,另一种通过 get 获取硬编码的 json,第二种方法有效,但第一种方法无效。
不胜感激。
谢谢!
【问题讨论】:
标签: javascript rest angular