修改所有请求添加新参数

Modify all requests adding a new parameter

我正在尝试寻找一种优雅的方式来为我的应用程序完成的每次提取添加参数。

是否有任何配置允许我修改附加新 属性 的正文?我查看了 github 上的文档和 aurelia-fetch-client 实现,但我找不到任何相关信息。

您正在寻找拦截器。这里有几个链接可供阅读:

http://aurelia.io/hub.html#/doc/api/aurelia/fetch-client/latest/interface/Interceptor

https://gist.github.com/bryanrsmith/14caed2015b9c54e70c3

基本上,您将要修改请求正文,您应该能够通过执行以下操作来做到这一点:

httpClient.configure(config => {
    config
        .withBaseUrl('api/')
        .withDefaults({
            credentials: 'same-origin',
            headers: {
                'Accept': 'application/json',
                'X-Requested-With': 'Fetch'
            }
        })
        .withInterceptor({
            request(request) {
                // you're going to want to modify the request body and add the appropriate property. Should be able to do it from here
                return request;
            }
        });
});

针对这个问题,我找到了另一种方法。

我创建了一个自定义 class,在构造函数上我添加了参数以在获取主体中发送它。

import { transient } from 'aurelia-framework';

@transient()
export class MyCustomBodyRequest {
    private _body?: any = {};

    constructor() {
        this._body.myCustomParameterOnEveryReq = getIt();
    }

    public get body() {
        return this._body;
    }

    public set body(body: any) {
        Object.assign(this._body, body);
    }

}​