XMLHttpRequest croix de domaine
j'ai ce code javascript pour extraire du texte à partir de la page, il fonctionne très bien si j'ouvre le fichier dans mon domaine, mais je ne peux pas obtenir de texte à partir d'un fichier dans un autre domaine, parce que certains des raisons de sécurité. Donc ma question est comment puis-je s'il vous plaît extraire du texte à partir d'un autre site web en javascript, veuillez sans jquery.
Merci
function reqListener () {
console.log(this.responseText);
}
var xhr = new XMLHttpRequest();
xhr.onload = reqListener;
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
alert(xhr.responseText);
}
}
xhr.open('GET', 'http://anotherweb.com/datafile.php', true);
xhr.setRequestHeader('Content-Type', 'text/plain');
xhr.send(null);
J'ai essayé et ça ne marche pas.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
$(document).ready(function(){
$("button").click(function(){
$.ajax({
url: "http://localhost/index.php",
dataType : "json",
contentType: "application/json; charset=utf-8",
cache: false,
success: function(response) {
alert(response);
},
error: function (e) {
}
});
});
});
</script>
</head>
<body>
<button>Send an HTTP GET request to a page and get the result back</button>
</body>
</html>
La croix-origine des demandes simplement ne sont pas autorisés par défaut. Le serveur distant peut donner la permission à votre demande par le biais de C ou par l'appui à l'Ajax alternatives comme le JSONP. Mais, si
datafile.php
n'offre pas l'un de ces, vous aurez besoin pour créer votre propre serveur-côté de la couche à la médiation de la demande entre le navigateur et anotherweb.com
.OriginalL'auteur tomsk | 2014-03-03
Vous devez vous connecter pour publier un commentaire.
Si
Access-Control-Allow-Origin
en-tête est défini dans les en-têtes de réponse dedatafile.php
il fonctionne 🙂C'est impossible 🙁 La croix domaine de fichier cible(serveur) doit permettre de requêtes à partir de votre domaine.
il moûts quelque chose existe qui permettent d'afficher du texte à partir de la page externe
Vous ne pouvez pas faire une croix domaine de texte/html dans n'importe quel navigateur moderne. Le seul type de retour que je connais qui travaille actuellement est jsonp
ah okey, pouvez-vous m'envoyer s'il vous plaît tout facile tutoriel pour arriver texte/html à partir de la page externe? Merci beaucoup
OriginalL'auteur Pruthvi Raj Nadimpalli
vous pouvez envoyer la demande à votre serveur, puis de les rediriger vers où vous voulez:
fonction javascript:
.htaccess:
La fonction javascript va écrire la réponse de example.com dans le txtHint div.
Je l'ai écrit comme ça parce que c'est la façon dont je l'utilise dans mon application alors je n'en ai fait des modifications mineures.
Espérons que cela aide
OriginalL'auteur user3547021
Vous devriez être en utilisant postMessage pour obtenir autour de la croix, les restrictions de domaine.
OriginalL'auteur John Henckel
Vous ne pouvez pas faire de la croix-demande de domaine,par exemple à partir de example1.com pour example2.com par XMLHttpRequest ou jQuery(qui est un wrapper de XMLHttpRequest) en raison de problème de sécurité dans le côté client(navigateur). Cela peut être efficacement mis en œuvre dans le navigateur moderne en charge HTML5, par le biais de la SCRO(origine de la croix de partage de ressources, qui ne peut pas être disponibles dans tous les navigateur client.
Donc, la solution est d'insérer une balise script dans example1.com de example2.com et cette solution est connue sous forme de JSON-P(JSON avec un rembourrage), le nom peut être trompeur, car les données peuvent être dans n'importe quel format servi par le serveur(example2.com). Sa mise en œuvre code est donné dans ce lien http://newtechinfo.net/jsonp-for-cross-domain-ajax/
OriginalL'auteur P.Gurung