Vous ne pouvez pas ajouter directement des en-têtes personnalisés avec fenêtre.open() dans la fenêtre popup mais pour cela, nous avons deux solutions possibles
- Ecrire une méthode Ajax pour appeler cette URL particulière avec des en-têtes dans un fichier HTML séparé et utiliser ce HTML comme url dans
<i>window.open()</i>
voici abc.html
$.ajax({
url: "ORIGIONAL_URL",
type: 'GET',
dataType: 'json',
headers: {
Authorization : 'Bearer ' + data.id_token,
AuthorizationCheck : 'AccessCode ' +data.checkSum ,
ContentType :'application/json'
},
success: function (result) {
console.log(result);
},
error: function (error) {
} });
appeler html
window.open('*\abc.html')
ici, la politique CORS peut bloquer la demande si CORS n'est pas activé dans l'URL demandée. .
- Vous pouvez demander une URL qui déclenche un programme côté serveur qui effectue la demande avec des en-têtes personnalisés et renvoie ensuite la réponse en redirigeant vers cette URL particulière.
Supposons qu'en Java Servlet (/requestURL) nous fassions cette requête
`
_String[] responseHeader= new String[2];
responseHeader[0] = "Bearer " + id_token;
responseHeader[1] = "AccessCode " + checkSum;
String url = "ORIGIONAL_URL";
URL obj = new URL(url);
HttpURLConnection urlConnection = (HttpURLConnection) obj.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.setRequestProperty("Accept", "application/json");
urlConnection.setRequestProperty("Authorization", responseHeader[0]);
urlConnection.setRequestProperty("AuthorizationCheck", responseHeader[1]);
int responseCode = urlConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new
InputStreamReader(urlConnection.getInputStream()));
String inputLine;
StringBuffer response1 = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response1.append(inputLine);
}
in.close();
response.sendRedirect(response1.toString());
// print result
System.out.println(response1.toString());
} else {
System.out.println("GET request not worked");
}_
`
appeler le servlet dans window.open('/requestURL')