I'm making a $.ajax async:false response to a localhost server but I have this error:
jquery-1.11.3.min.js:5 XMLHttpRequest cannot load http://localhost:8001/academialopedevega/get/get_alumnos_leen_novedades.php?idAlumno=10&idAsignatura=1. Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.
When I paste the URL in a new tab it works fine and return the json.
This is the javascript code:
function novedades(){
$("#contenido").empty();
console.log( url );
$.getJSON(url, function (data) {
console.log(data);
if(data.success==0){
$("#contenido").append('
Aun no te has matriculado en ninguna asignatura.
');}else{
$("#contenido").append('
- ');
}
});
var url="http://192.168.1.108:8001/academialopedevega/get/get_oferta_usuario.php?idUsuario="+localStorage.getItem('idConectado');
$.ajax({
async: false,
type: "POST",
url: url,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$.each(data.asignatura,function(a,b){
console.log(b);
idA = b.idA;
nombreA = b.nombre;
horasA = b.horas;
tipoA = b.tipo;
url2='http://localhost:8001/academialopedevega/get/get_alumnos_leen_novedades.php?idAlumno='+localStorage.getItem('idConectado')+'&idAsignatura='+idA;
$.ajax({
async: false,
type: "POST",
url: url2,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data2) {
$.each(data2,function(c,d){
cuenta=d.cuenta;
$("#asignaturas").append('
'+nombreA+''+cuenta+'');$("#contenido").append("");
$("#asignaturas").listview();
$("#asignaturas").listview('refresh');
})
}
})
})
}
});
$("#mipanel").panel("close");
}
And this is the PHP code:
header('Access-Control-Allow-Origin: *');
$respuesta=array();
require_once __DIR__ . '/../db_connect.php';
// connecting to db
$db = new DB_CONNECT();
//Recibe los parametros:
/*
$alumnos_id = El id del usuario
$asignaturas_id = El id de la asignatura
$nota = La nota del alumno
*/
if(isset($_GET['idUsuario'])){
$idUsuario=$_GET['idUsuario'];
//Query para insertar
$resultado_asignaturas=mysql_query('select * from asignaturas inner join oferta_educativa_tiene_asignaturas on oferta_educativa_tiene_asignaturas.asignaturas_id=asignaturas.id inner join oferta_educativa_tiene_alumnos on oferta_educativa_tiene_alumnos.oferta_educativa_tiene_asignaturas_asignaturas_id=oferta_educativa_tiene_asignaturas.asignaturas_id where oferta_educativa_tiene_alumnos.alumnos_usuarios_id='.$idUsuario.' group by id');
if (mysql_num_rows($resultado_asignaturas) > 0) {
$respuesta['asignatura'] = array();
while ($fila_oferta = mysql_fetch_array($resultado_asignaturas)) {
//Anuncio
$idA = $fila_oferta['id'];
$nombreA = $fila_oferta["nombre"];
$horasA = $fila_oferta["horas"];
$tipoA = $fila_oferta["tipo"];
$cursoA = $fila_oferta["curso"];
$asignatura = array('idA' => $idA, 'nombre' => $nombreA, 'horas' => $horasA, 'tipo' => $tipoA, 'curso' => $cursoA);
array_push($respuesta["asignatura"], $asignatura);
}
// success
$respuesta["success"] = 1;
echo json_encode($respuesta);
}else{
// no hay
$respuesta["success"] = 0;
$respuesta["message"] = "No se ha encontrado nada :(";
echo json_encode($respuesta);
}
}
else{
echo 'Introduce los campos';
}
?>
If I use other version of jQuery the jQuerymobile dont works fine.