Ajax (jQuery) cross domain-Ausgang -
Da ist eine solche Funktion nicht unterstützt cross-domain-Anfrage
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");
}
}
}
so beschlossen jQuery (mit dieses plugin) aber Funktion
$.ajax({
url: suchurl,
type: "GET",
//dataType: "text",
dataType: "text",
//global: false,
//async:false,
cache: false,
success: function(data) {
//alert(data);
alert(data.responseText);
}
});
Ausgabe wie
<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>
Warum?.. Wann rechnet nur
new_towns = [ {id:"0", name:" "}, {id:"205", name:"City205"}, {id:"17", name:"City17"} ];
, Was Sie beraten?
Ich danke Ihnen im Voraus.
Beispiel-code - funktioniert nicht
<!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, Jungs, es ist einfacher und schneller&verständliche Entscheidung Skript verwenden
get.php
<?php
if(isset($_POST['geturl']) and !empty($_POST['geturl'])) {
$data = file_get_contents($_POST['geturl']);
print $data;
}
?>
und dann nur
$.ajax({ url: 'get.php',
data: {geturl: suchurl},
type: 'POST',
dataType: "text",
cache: false,
success: function(data){
alert(data);
//do something else
}
});
TNX SEHR VIEL FÜR IHRE VERSUCHE ZU HELFEN UND TIPPS!
wenn Sie erwarten, dass json-Daten
dataType: 'json'
InformationsquelleAutor Andriy K. | 2011-07-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nicht denke, dass Sie Sie verlassen müssen, auf ein plugin für das erste cross-domain JSON. Sie können die jquery - 'jsonp' - Datentyp.
Können Sie die 'JSONP' - Abschnitt in der folgenden URL:
http://api.jquery.com/jQuery.getJSON/
Die Ausgabe, die Sie bekommen kann etwas sein, das die URL zurückgegeben wird. Stellen Sie sicher, dass die angeforderte URL gibt wird nur die erwartete Ausgabe.
Dank
InformationsquelleAutor HungryCoder
Sieht aus wie in deinem ersten Beispiel, den Sie anfordern, text/xml, aber in der zweiten, Ihre Art ist nur "text", die verursachen könnte, dass die url schicken, um wieder eine anders formatierte Antwort. Für die JSON-Daten, könntest du auch versuchen eine Art "application/json".
Klingt wie ein server-problem, wenn es reagiert nicht auf Anfragen für eine gültige Datentypen wie diejenigen,... Versuchen ein paar andere Browser, einige verarbeiten ajax besser als andere, und wenn einige arbeiten, die beseitigen würde, den server als problem.
Wenn Sie nicht bekommen kann, was aber die HTML-version, könnte man tatsächlich analysieren, die von HTML in Ihrem Erfolg-Funktion und extrahieren Sie die Teil, den Sie möchten. So etwas wie dieses: $(data).find("p:first").text();
InformationsquelleAutor ElonU Webdev
Den JQuery
$.ajax()
Funktion enthält native JSONP-Unterstützung. Sie müssen die parametercrossDomain:true
Können Sie darüber Lesen Sie hier: http://api.jquery.com/jQuery.ajax/
sorry, verstehe nicht, code, selbst mit async:false - nichts, sorry fügen Sie code in Frage Körper, ich danke Ihnen für Ihre Aufmerksamkeit
Verwenden Sie die Funktionen json_encode() in der php-Seite für die Ausgabe?
Nein 🙁 ist es wirklich brauchen? was geändert werden muss, im Beispiel-code (in Frage) - propely Arbeit?
InformationsquelleAutor AlienWebguy