He visto las siguientes preguntas aquí en stackoverflow sin suerte en lo que estoy tratando de hacer.Enviando encabezados de autorización con jquery y ajax
Ajax Authorization Request headers fails again and again
jQuery Ajax Unauthorized 401 Error
Sending credentials with cross-domain posts?
Aquí está mi código que tengo actualmente:
$(document).ready(function() {
$.ajax({
url: 'http://sample.domain.com/script.php?name1=value1&jsonp=?',
type: 'GET',
dataType: 'json',
contentType: "application/json",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authentication", "Basic ZnJvbWFwcGx********uOnRoM24zcmQ1UmgzcjM=") //Some characters have been replaced for security but this is a true BASE64 of "username:password"
},
success: function(data){
alert(data);
}
});
});
</script>
El subdominio que tengo es protegido por un archivo .htpasswd contraseña. El inicio de sesión del sitio funciona bien para mí usando el combo de nombre de usuario/contraseña utilizado en la codificación base64.
Estoy ejecutando esta secuencia de comandos en un dominio diferente al que está en la url que es por qué tengo el jsonp =? en la url
La respuesta im conseguir desde la consola en el navegador es: GET http://sample.domain.com/script.php?name1=value1&jsonp=jsonp1334177732136 401 (Authorization Required)
¿Por qué utiliza autenticación básica aquí? Su JS expondrá la contraseña de base64 al mundo, por lo que no ofrecerá ningún tipo de seguridad. ¿O he entendido mal tu situación? – jimw
Para ser sincero, todos los métodos no son seguros a través de HTTP. Es por eso que HTTPS existe. – freakish
La seguridad aquí no es la pregunta. Esto es solo una muestra de lo que tengo. He reducido esto a lo básico para intentar que algo funcione. Después de que tenga el funcionamiento básico, lo haré seguro. – bretterer