Search code examples
odatabreeze

Add header to request in breeze while making a request to a ODATA server


I am creating an application. My server is ODATA server and I am using breeze at client side. Can anyone please tell me how I can add a header before making a request to server? breeze.config.getAdapterInstance("ajax") is not working for me.

var ajaxAdapter = breeze.config.getAdapterInstance('ajax');//,'angular',true);

ajaxAdapter.defaultSettings = {
    headers: { "Auth" : "I am not a hacker" },
};

breeze.config.initializeAdapterInstances({ dataService: "webApiOData" });

Solution

  • The webApiOData dataService adapter does not use the ajax adapter configured in Breeze, so adding default headers to the ajax adapter does not work. You will have to configure datajs instead. See Breeze - Adding headers to request

    var oldClient = OData.defaultHttpClient;
    
    var myClient = {
        request: function (request, success, error) {
            request.headers["Auth"] = "I am not a hacker";
            return oldClient.request(request, success, error);
        }
    };
    
    OData.defaultHttpClient = myClient;
    
    breeze.config.initializeAdapterInstances({ dataService: "webApiOData" });