首页 > 解决方案 > 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 中一切正常。我怎么解决这个问题?

标签: node.jsangular

解决方案


推荐阅读