Sto tentando di caricare il contenuto (parte specifica) di una pagina Web esterna tramite la richiesta ajax
sulla mia pagina web. Il curl
URL per la richiesta è la seguenteOttieni una parte specifica della pagina Web esterna tramite ajax con http auth
Così, ho provato la seguente chiamata ajax per ottenere la pagina web
var username,password;
$.ajax
({
type: "GET",
url: "http://X.X.X.X:PORT/",
dataType: 'text/html',
async: false,
crossDomain: true,
data: '{"username": "username", "password" : "secret"}',
success: function(){
alert('Thanks for your comment!');
},
error: function (err){
alert(err);
},
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password));
}
});
Questo mi dà un errore di CORS
(Cross-Origin Request Blocked:
). Dopo aver modificato dataType
da text/html
a jsonp
. L'ho ricevuto la risposta con il seguente errore
[Exception ... "Failure" nsresult: "0x80004005 (NS_ERROR_FAILURE)" Posizione: "frame JS :: https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js :: :: Trasmettami linea 5" dati: no]
In entrambi i casi, la parte di successo della chiamata ajax non viene eseguita. Solo va alla parte di errore. Se ho ricevuto la pagina di quanto posso recuperare la parte specifica con il seguente metodo.
var data = $.parseHTML(res); //<----try with $.parseHTML().
$(data).find('div.content').each(function(){
$('#here').append($(this).html());
Come ottenere il risultato richiesto?
Dopo il suggerimento di @GuRu, ho provato quanto segue, ma il metodo di successo non viene richiamato.
var username,password;
$.ajax({
type: "GET",
url: "http://X.X.X.X:PORT/",
data: '{"username": "user", "password" : "secret"}',
async:true,
dataType : 'jsonp',
crossDomain:true,
success: function(){
alert('Thanks for your comment!');
},
beforeSend: function(xhr) {
xhr.overrideMimeType("text/plain; charset=x-user-defined");
xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password));
}
});
try "Content-Type" a ' "text/javascript"' invece di 'text/html' –
@ParthTrivedi ho provato "text/javascript" in' dataType' ma ancora lo stesso errore. –
Hai provato con 'application/javascript' –