<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.6.4">
</HEAD>
<BODY>
Hi,<BR>
<BR>
I'm testing the CORS support on Aerogear.js.<BR>
<BR>
Initially, I executed some CORS tests from Mozilla Firefox v21.0 and received the Error: <I>&quot;jqXHR.getResponseHeader(..) is null aerogear.js line 605</I>&quot; when testing the weblinking (attached screenshot).<BR>
<BR>
However, I think that this error is not related to the AeroGear.js. <BR>
<BR>
I managed to overcome this issue in Firefox by adding an extra header to the service response which sets a server whitelist headers that browsers are allowed to access:<BR>
<BLOCKQUOTE>
    Access-Control-Expose-Headers: Link<BR>
</BLOCKQUOTE>
<BR>
The problem is that it still fails on the Android emulator browser.<BR>
<BR>
The header tests were also failing in Firefox and passed after adding the following header in the Response headers:<BR>
<BLOCKQUOTE>
    Access-Control-Expose-Headers: next,previous<BR>
    <BR>
</BLOCKQUOTE>
But on the Android emulator the header tests are failing. I captured the requests using a proxy between the emulator and the REST service and found that the constructed URLs for next and previous calls are wrong. This happens because the custom response headers cannot be read.<BR>
<BR>
In conclusion, I think that the Access-Control-Expose-Headers header is not supported by the Android browser and for that reason the CORS tests are failing. There is a relevant open issue [2] in the Android project.<BR>
<BR>
[1]: <A HREF="http://api.jquery.com/jQuery.ajax/">http://api.jquery.com/jQuery.ajax/</A><BR>
[2]: <A HREF="http://code.google.com/p/android/issues/detail?id=56726">http://code.google.com/p/android/issues/detail?id=56726</A>
</BODY>
</HTML>