Sto cercando di creare pagina di autenticazione di base in cui la mia forma ha tre campiautenticazione di base utilizzando jQuery/ajax
- nome utente
- la password
- tipo concessione
Su presentazione di un modulo I voglio solo visualizzare la risposta restituita da un server sul mio HTML in formato JSON. La mia chiamata AJAX al servizio Web richiede anche l'autorizzazione Autorizzazione da impostare. Ma in qualche modo le intestazioni non vengono impostate. Sto cercando
beforeSend : function(xhr)
{
xhr.setRequestHeader('Authorization', "Basic ******");
xhr.setRequestHeader("contentType", "application/json;charset=UTF-8");
}
Ma quando il debug del codice in consolle sembra punto di interruzione non passa mai in questa funzione. Sono un principiante di Ajax e ho provato sotto il codice di googling su internet. Sto postando l'intero codice qui sotto.
CODICE:
$(document).ready(function() {
// process the form
$('form').submit(function(event) {
// get the form data
var formData = {
'username': $('#username').val(),
'password': $('#password').val(),
'grant_type': $('#grantType').val()
};
// process the form
$.ajax({
type : 'POST',
url : 'http://localhost:9090/oauth/token',
beforeSend: function (xhr)
{
xhr.setRequestHeader("Authorization", "Basic ******");
xhr.setRequestHeader("contentType", "application/json;charset=UTF-8");
},
data : formData, // our data object
dataType : 'json', // what type of data do we expect back from the server
encode : true
})
// using the done promise callback
.done(function(data) {
// log data to the console so we can see
console.log(data);
alert(data);
// here we will handle errors and validation messages
})
.fail(function (jqXHR, textStatus){
alert('Status : ' + textStatus + '' + JSON.stringify(jqXHR));
});
// stop the form from submitting the normal way and refreshing the page
event.preventDefault();
});
});
Che cosa provoca non impostare le intestazioni nel mio codice. Per favore correggimi.
Nella console (Google Chrome) in scheda di rete, che potete vedere qui sotto intestazioni di richiesta
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, authorization, content-type, contenttype
Access-Control-Request-Method:POST
Connection:keep-alive
Host:192.168.1.128:9090
Origin:null
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
e al di sotto di errore appare in consolle.
E al momento della chiamata stessa API da avanzata Resto client un'estensione per Google Chrome che mi mostra tutte le intestazioni
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
contentType: application/json;charset=UTF-8
Authorization: Basic **********
Content-Type: application/x-www-form-urlencoded
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
sto semplicemente in esecuzione la mia pagina web utilizzando file di protocollo.
Es: file:///E:/Mahendra/Practice%20Example/Test/OauthTest.html
io non sono sicuro se questo sta causando un problema.
Eventuali duplicati di [ajaxSetup (beforeSend not working) (http://stackoverflow.com/questions/19361908/ajaxsetup-beforesend-not-working) – abc123
Anche questo sembra essere un problema CORS, Block-Origin Request Blocked, http: // stackoverflow .com/questions/5750696/how-to-get-a-cross-origin-resource-sharing-cors-post-request-working – abc123