Problèmes accès CORS sur un web service avec de l'ajax

Fermé
jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 - Modifié par jubasse le 31/12/2015 à 09:56
jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 - 31 déc. 2015 à 10:05
Bonjour,

J'ai mis en place un web-service avec le micro-framework slim.
Je l'ai testé avec Postman et tout fonctionne.
Seulement quand je souhaite faire la requête en ajax, si je lui passe un content type, j'obtiens une redirection et une erreur :


XMLHttpRequest cannot load http://... Response for preflight is invalid (redirect)



voici les headers serveur :


$app->response()->headers->set('Content-Type', 'application/json;charset=UTF-8');
$app->response()->headers->set('Access-Control-Allow-Origin', '*'); 
$app->response()->headers->set('Access-Control-Allow-Methods', 'DELETE, HEAD, GET, OPTIONS, POST, PUT');
$app->response()->headers->set('Access-Control-Allow-Headers', 'Content-Type, Content-Range, Content-Disposition, Content-Description, X-Requested-With');
$app->response()->headers->set('Access-Control-Max-Age', '1728000');



et voici le code en ajax :


jQuery(document).ready(function($) {
	$.ajax({
		url: 'http://...',
		type: 'GET',
		dataType: 'json',
		beforeSend: function(xhr) {
	        xhr.setRequestHeader(
	        	'Content-Type', 
	        	'application/json; charset=UTF-8'
	        );
	    },		
	    //même si je met contentType : "application/json",
            //ça ne fonctionne pas hors lorsque je retire 
            // le content-type cela fonctionne mais ce n'est pas le but
	    headers:{
		Accept: "application/json; charset=UTF-8"
	    },
	   data : JSON.stringify({
		active: 1,
		limit: 3,
		offset: 0,
		orderby: "username",
		way: "asc",
		date_min: "2015-11-31",
		date_max: "2016-01-01"
	   }),
	})
	.done(function(data) {
		console.log(data);
	})
	.fail(function(data) {
		console.log(data);
	});
	
});



cela fait un petit moment que je cherche, si quelqu'un à une idée ...

Merci.
A voir également:

1 réponse

jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 1
Modifié par jubasse le 31/12/2015 à 10:18
De ce que j'ai compris, j'envoie en ajax une entête options (requête de preflight) qui foire j'ai donc testé le dataType: "jsonp" qui fonctionne pas non plus.
0