WinFuture-Forum.de: Gadget Entwicklung ... Ajax - WinFuture-Forum.de

Zum Inhalt wechseln

Alle Informationen in unserem Special: Windows Vista.
Seite 1 von 1

Gadget Entwicklung ... Ajax


#1 Mitglied ist offline   verplant 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 05. April 07
  • Reputation: 0

  geschrieben 05. April 2007 - 11:49

Hi

ich versuche gerade mein eigenes gadget zu bauen ... und stoße immerwieder auf sicherheitsprotokolle :rolleyes:

was ich machen will:
ich will ein gadget bauen das auf eine php datei zugreift(die auf ein entfernten server liegt) . die php datei gibt mir ein string zurück(ließt sachen aus einer mysql datenbank)

was bisher funktioniert:
Ich kann das gadget starten und es greift auf die php datei zu und hollt sich den string und gibt ihn aus ... aber nur 1 mal :rolleyes: in der php datei holle ich 100 datensätze aus der db und füge 5 zufällige rows zu ein string zusammen. so hab ich immer andere sachen in mein gadget zu stehen :)

aber das funktioniert ebend nicht ich kann nur 1 mal auf den server zugreifen(auf die php datei)
wenn in mein gadget die ajax funktion nochmal aufrufe passiert garnichts... :rolleyes: er greift kein 2tes mal auf den server zu :(

rk_gadget.js
function Request()
{
	ajax = new XMLHttpRequest()
	ajax.open("GET", "http://localhost/upload.php",false);
	ajax.send();
	var txt = ajax.responseText;
	ajax.abort( );
	ajax = false;
	var a_txt = txt.split("_%_");
	for (i=1;i<5;i++)
	{	a_txt[i-1] = a_txt[i-1].substr(0, 25)+"...";
		document.getElementById("row"+i).innerHTML = a_txt[i-1];
	}
	txt = "";
	delete(a_txt);
}

gaget.html
<html>
<head>
	<title>R......</title>
	<link rel="stylesheet" href="css/rk_gadget.css" type="text/css" media="screen" />
	<script type="text/javascript" src="js/rk_gadget.js"></script>
	<script type="text/javascript">
var aktiv = window.setInterval("Request()", 1000);
</script>	
</head>
<body onLoad="Request();">
	<span class="gadgetContent" id="row1">R...... is the BEST!</span>
	<span class="gadgetContent" id="row2">R...... is the BEST!</span>
	<span class="gadgetContent" id="row3">R...... is the BEST!</span>
	<span class="gadgetContent" id="row4">R...... is the BEST!</span>
	<div id="bottomNav"> 
		<a id="buttonload" href="java script:void(0);">
			<img id="buttonLeft" onClick="Request();" src="images/buttonUp_Off.png" border="0" 
			onMouseOver="toggleButton(this, 'buttonUp_On.png');" 
			onMouseOut="toggleButton(this, 'buttonUp_Off.png');" />
		</a>
	</div>
</body>
</html>

upload.php
<?php
$mysqli = new mysqli("localhost", "****", "******", "rk_test2");
$param = $_GET["shell"];
$result = $mysqli->query("SELECT r.headline, COUNT( rh.user_id ) AS hits
						FROM rankings AS r
						LEFT JOIN ranking_hits AS rh ON rh.ranking_id = r.id
						JOIN categories_rankings cr ON cr.ranking_id = r.id
						JOIN categories c ON c.id = cr.category_id
						JOIN categories cp ON cp.id = c.parent_id
						GROUP BY rh.ranking_id
						ORDER BY hits DESC
						LIMIT 100
						");
$i= 0;
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$res[$i] = $row["headline"];
$i++;
} 
srand((float) microtime() * 10000000);
$keys = array_rand($res,sizeof($res));
echo $res[$keys[0]]."_%_".$res[$keys[1]]."_%_".$res[$keys[2]]."_%_".$res[$keys[3]]."_%_".$res[$keys[4]];
?>


die gadget.xml
<?xml version="1.0" encoding="utf-8" ?>
<gadget>
	<name>R........</name>
	<namespace>Msxml2.XMLHTTP</namespace>
	<version>0.2</version>
	<author name="B...... R......">
		<info url="www.R........" />
	</author>
	<logo src="Logo.png" />
	<icons>
		  <icon height="48" width="48" src="rk_icon.png" /> 
	  </icons>
	<copyright>Copyright 2007 U.........</copyright>
	<description>Alles rund ums R........!</description>
	<hosts>
		<host name="sidebar">
			<base type="HTML" apiVersion="1.0.0" src="rk.html" />
			<permissions>full</permissions>
			<platform minPlatformVersion="0.3" />
		<defaultImage src="rk_drag.png" /> 
		</host>
	</hosts>
</gadget>


das sind alle meine sachen die ich bis jetzt hab also mein firefox sagt mir dazu
uncaught exception: Die Erlaubnis für den Aufruf der Methode XMLHttpRequest.open wurde verweigert

und ich schätz mal das is der knackpunkt :(
0

Anzeige



#2 Mitglied ist offline   Spiderman 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.669
  • Beigetreten: 23. November 06
  • Reputation: 26

geschrieben 05. April 2007 - 13:08

Hi,

a) der FF macht aus Sicherheitsgründen kein ActiveX daher ist das OK, die Sidebar nutzt aber nicht den FF, also ist da kein Problem

b) dass er nur einmal auf den Server zugreift ist das Cache Problem des IE, hier gibt es zwei Lösungen
1) den Cache ausschalten, so das jedesmal die Seiten geladen werden, das ist aber schlecht beim surfen
2) den Cache austricksen, durch eine Zufallszahl an der URL angehängt, das sieht dann so aus:

url = url + '?cache=' + Math.random();



Gruß
Spiderman

Dieser Beitrag wurde von Spiderman bearbeitet: 05. April 2007 - 13:10

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0