node.js - Mozilla Firefox 浏览器 POST 和 PUT 请求不起作用(MEAN 项目)
问题描述
在我的 MEAN-stack 项目中,我在 Mozilla Firefox 浏览器中对其进行测试时发现了一些问题。问题是当我发送 PUT 或 POST 请求时它不起作用(但 GET 效果很好)。这是标头(node.js):
app.use(function (req, res, next) {
express.static('public');
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-type');
res.setHeader("Allow-Control-Allow-Origin", "*");
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
这是 baseServiceController 的 put 函数:
public Put<T>(url: string, data): Observable<T> {
this.observer.next(true);
return this.http.put(url, data).pipe(map((result: T) => {
return result as T;
}), catchError(this.handleError), finalize(() => {
this.observer.next(false);
}));
}
这是服务的 put 请求:
public vote = (id: string, data: VoteModel): Observable<VoteModel> => {
return this.Put<VoteModel>(`${utilities.baseUrl}/vote/${id}`, data);
}
当我发送请求时,立即工作 catch 块并调用 handleError 函数。在 Chrome、Edge、Opera 中一切正常。我怎么解决这个问题?
解决方案
推荐阅读
- javascript - Selection: incorrect isCollapsed value for deselecting by clicking on selected text
- c++ - Ray and Plane Intersection in C++ (Plane defined as normal and D)
- python-3.x - An issues with running "pip install Beautifulsoup" on cmd
- machine-learning - Pytorch VNet final softmax activation layer for segmentation. Different channel dimensions to labels. How do I get prediction output?
- python-3.x - How should I implement List annotation, which contains any type of objects?
- cmake - Linking mingw libs with cmake
- android-studio - Android studio create an update function
- r - Is there an R function to estimate cumulative incidence with aggregated survival data?
- powershell - Powershell_ISE 中的 New-IseSnippet 不保存变量?
- scala - 根据变量读取某些文件夹