0

My post is making it to the server and returning correctly; however, I cannot seem to retrieve the var addressId = xhr.getResponseHeader('X-NEW-ADDRESS-ID'); from the XMLHttpRequest header.

Can someone point out to me how to retrieve the header value from the response?

[HttpPost]
public HttpResponseMessage AddressNew(EnterpriseAddressViewModel a)
        {
            HttpResponseMessage r = null;
            if (ModelState.IsValid)
            {
                AFCCIncProsNonProsCommonDL.DataTransfer.Tables.utbAddress address = new AFCCIncProsNonProsCommonDL.DataTransfer.Tables.utbAddress();
                address.AddressFlags |= (byte)Math.Pow(2, 0);
                address.AddressIsVisible = true;
                address.AddressLine = a.Street;
                address.AddressTypeID = a.AddressTypeID;
                address.ZipCode = a.Zipcode;

                int newAddressID = 0;

                if (Roles.IsUserInRole(_nonProRoleName))
                {
                    AFCCIncNonProsBL.Address.Addresses_Insert(_cnn, new Guid(Membership.GetUser().ProviderUserKey.ToString()), address, out newAddressID);
                }
                else
                {
                    AFCCIncProsBL.Address.InsertAddress(_cnn, new Guid(Membership.GetUser().ProviderUserKey.ToString()), address, out newAddressID);
                }
                r = new HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
                r.Headers.Add("X-NEW-ADDRESS-ID", newAddressID.ToString());
            }
            else
            {
                r = new HttpResponseMessage(System.Net.HttpStatusCode.NotAcceptable);
                r.Content = new StringContent("Error adding address");
            }
            return r;


  }

---JavaScript-------

var btnSubmitNew = function () {

    var newForm = new FormData(document.forms[0]),
        xhr = new XMLHttpRequest(),
        that = this;

    xhr.onload = function () { };
    xhr.onreadystatechange = function () {

        if (xhr.readyState === 4) {

            var addressId = xhr.getResponseHeader('X-NEW-ADDRESS-ID');
        };
    };
    xhr.open('POST', '/EnterpriseManager/' + currPartial + 'New', true);
    xhr.send(newForm);
    return false;
};
  • Have you tried using `var headers = xhr.getAllResponseHeaders().toLowerCase(); alert(headers);` http://stackoverflow.com/questions/220231/accessing-the-web-pages-http-headers-in-javascript – Satpal Feb 09 '14 at 21:21
  • Seems this post will likely answer your question: http://stackoverflow.com/questions/220231/accessing-the-web-pages-http-headers-in-javascript – codeguerrilla Feb 09 '14 at 21:23

0 Answers0