Ajax (jQuery) croix domaine de sortie -
Comme telle fonction ne prend pas en charge la croix-demande de domaine
function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) { //Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { //IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
receiveData(http_request.responseText);
} else {
alert("error");
}
}
}
donc décidé d'utiliser jQuery (avec ce plugin), mais la fonction
$.ajax({
url: suchurl,
type: "GET",
//dataType: "text",
dataType: "text",
//global: false,
//async:false,
cache: false,
success: function(data) {
//alert(data);
alert(data.responseText);
}
});
sortie comme
<html>
<head>
<meta content="HTML Tidy for Java (vers. 26 Sep 2004), see www.w3.org" name="generator"/>
<title/>
</head>
<body>
<p>new_towns = [ {id:"0", name:" "},
{id:"205",
name:"City205"},
{id:"17",
name:"City17"}
];</p>
</body>
</html>
Pourquoi?.. lorsque attend juste
new_towns = [ {id:"0", name:" "}, {id:"205", name:"City205"}, {id:"17", name:"City17"} ];
Ce que vous avez des conseils?
En vous remerciant à l'avance.
exemple de code ne fonctionne pas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.6.2");
google.setOnLoadCallback(function() {
$.ajax({
url: suchurl,
type: "GET",
dataType: "text",
crossDomain:true,
async:true,
cache: false,
success: function(data) {
alert("all right");
}
});
});
</script>
</head>
<body>
</body>
</html>
OK, les gars, c'est plus simple et plus rapide&compréhensible la décision d'utilisation de script
get.php
<?php
if(isset($_POST['geturl']) and !empty($_POST['geturl'])) {
$data = file_get_contents($_POST['geturl']);
print $data;
}
?>
et puis juste
$.ajax({ url: 'get.php',
data: {geturl: suchurl},
type: 'POST',
dataType: "text",
cache: false,
success: function(data){
alert(data);
//do something else
}
});
TNX BEAUCOUP POUR VOS TENTATIVES D'AIDE ET DE CONSEILS!
si vous vous attendez à des données json ne
dataType: 'json'
OriginalL'auteur Andriy K. | 2011-07-10
Vous devez vous connecter pour publier un commentaire.
Je n'essayez pas de deviner que vous devez compter sur un plugin pour l'obtention de la croix de domaine JSON. Vous pouvez utiliser jquery "jsonp" de type de données.
Vous pouvez suivre le "JSONP" de la section " URL suivante:
http://api.jquery.com/jQuery.getJSON/
La sortie que vous obtenez peut être quelque chose que l'URL renvoie. Assurez-vous que l'URL demandée ne renvoie que la sortie attendue.
Grâce
OriginalL'auteur HungryCoder
Ressemble dans votre premier exemple, vous demandez text/xml, mais dans le second, votre type est juste "texte", ce qui pourrait être la cause de l'url à envoyer un différemment réponse au format. Pour les données JSON, vous pouvez également essayer un type de "application/json".
Sonne comme un problème de serveur, si ce n'est pas de répondre à des demandes pour des types de données valides comme ceux... Essayez un peu de les autres navigateurs, certains manipulent ajax mieux que d'autres, et si certains travaux, ce qui permettrait d'éliminer le serveur comme étant le problème.
Si vous ne pouvez pas obtenir quoi que ce soit mais la version HTML, vous pouvez réellement traiter ce code HTML dans votre réussite de la fonction et de l'extrait de la partie que vous voulez. Quelque chose comme ceci: $(données).find("p:first").text();
OriginalL'auteur ElonU Webdev
Le JQuery
$.ajax()
fonction native soutien JSONP. Vous devez ajouter le paramètrecrossDomain:true
Vous pouvez lire à ce sujet ici: http://api.jquery.com/jQuery.ajax/
désolé, de ne pas comprendre le code, même avec async:false rien, désolé ajouter du code en question du corps, je vous remercie pour votre attention
Êtes-vous à l'aide de json_encode() sur votre page php pour la sortie?
pas 🙁 est-ce vraiment nécessaire? ce qui doit changer dans l'exemple de code (en question) à propely travail?
OriginalL'auteur AlienWebguy