Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove specific request headers set in jQuery.ajaxSetup

I setup some custom headers using

$.ajaxSetup({
    headers : {
        'x-custom' : 'value'
    }
});

It will addx-custom header for all the ajax request. But I want some specific requests to NOT contain this header.

I tried this, delete header from ajaxSettings before that ajax call and add it back when its completed

delete $.ajaxSettings.headers["x-custom"];

$.ajax({
    ...
    "success": function (data) {
        $.ajaxSettings.headers["x-custom"] = 'value';
        ...
    }
});

But I feel this is not the correct way, as the request that fired before finishing that call will not get that header. What else can I do please suggest.

Should I add the header back in the next line after $.ajax instead doing it in callback?

like image 732
Salman Avatar asked Apr 30 '14 09:04

Salman


Video Answer


1 Answers

Since this question doesn't have any answer that can be marked as Accepted. I am posting the solution.

Looks like adding back the header immediately after the AJAX call would make sense. This way we won't be waiting for success callback and then adding it.

delete $.ajaxSettings.headers["x-custom"]; // Remove header before call

$.ajax({
    ...
    "success": function (data) {
        ...
    }
});

$.ajaxSettings.headers["x-custom"] = 'value'; // Add it back immediately
like image 112
Salman Avatar answered Oct 18 '22 20:10

Salman