PHP - Consulta de Web Services con ajax.Query

 
Vista:
sin imagen de perfil

Consulta de Web Services con ajax.Query

Publicado por Johnny (6 intervenciones) el 11/04/2017 23:48:48
Estimados estoy tratando de realizar una consulta via web services segun este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var request = $.ajax({
	url: "http://192.168.10.237:8080/getDatos",
	type: "POST",
	dataType: "json",
	//data: JSON.stringify({ data:{ "campo": numdoc }}),
	data: { "campo": numdoc },
	contentType: "application/json; charset=utf-8",
	headers: {
		'Access-Control-Allow-Origin' : '*',
	},
	beforeSend: function() {
		$("#beforecargando01").html("cargando...");
	},
	success: function(data) {
		//alert(data['data']);
		alert(data);
	},
	error: function(data, textStatus, errorThrown) {
		alert('data error: ' + textStatus);
	}
});

Pero me sale el siguiente error:

XMLHttpRequest cannot load http://192.168.10.237:8080/wr-dni-afiliados/server/consulta/getDatos. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.50.33' is therefore not allowed access.

Alguien me pude dar la solución?

Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de raai
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consulta de Web Services con ajax.Query

Publicado por raai (79 intervenciones) el 12/04/2017 00:13:30
Supongo que tiene que ver con los accesos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de Web Services con ajax.Query

Publicado por Johnny (6 intervenciones) el 12/04/2017 00:20:42
Y como le indico de que servidor viene el servicio web?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Consulta de Web Services con ajax.Query

Publicado por kip (877 intervenciones) el 12/04/2017 02:51:43
Hola, al parecer el error ocurre porque intentas acceder a un servicio que no esta en el mismo host y por temas de seguridad este lo rechaza.

Si tienes acceso al script PHP intenta añadiendo esto:

1
header('Access-Control-Allow-Origin: *');

No es la solucion mas segura pero puede funcionarte.

Prueba y nos cuentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de Web Services con ajax.Query

Publicado por Johnny (6 intervenciones) el 12/04/2017 02:53:47
Si ya he probado con esa opción del header pero sigo con el mismo problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Consulta de Web Services con ajax.Query

Publicado por kip (877 intervenciones) el 12/04/2017 02:57:40
Pero aquello que te coloque debe ir en el archivo http://192.168.10.237:8080/getDatos, por eso te comente que si tienes acceso a este hazlo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de Web Services con ajax.Query

Publicado por Johnny (6 intervenciones) el 12/04/2017 03:03:51
Así es, lo he colocado ahí y en index.php al inicio del archivo, pero sigue igual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Consulta de Web Services con ajax.Query

Publicado por kip (877 intervenciones) el 12/04/2017 03:16:27
Investigando un poco he leido que el * no es un valor válido para Javascript al momento de recibir las respuesta del servidor https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Access-Control-Allow-Headers

Intentalo de esta forma, colocalo en tu archivo PHP getDatos solamente

1
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");

Si no funciona prueba ademas agregando esto

1
header('Access-Control-Allow-Credentials: true');

Aunque creo que con lo de arriba bastaria.

Nos cuentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de Web Services con ajax.Query

Publicado por Johnny (6 intervenciones) el 12/04/2017 03:17:58
Ok. lo probaré y comento como me fue.

Gracias por las respuestas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de Web Services con ajax.Query

Publicado por Johnny (6 intervenciones) el 12/04/2017 15:39:10
Estimado, para aclarar algo, yo no tengo control sobre las fuentes del web services "http://192.168.10.237:8080/getDatos", si entendí bien, me pides colocar esto: header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); en donde esta el web services? si es así, no puedo hacerlo, porque ese servicio web está en otro lenguaje y no tengo control sobre el, solo lo consumo.

Alguna otra idea?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar