You are not logged in.

  • Login

Sunday, September 26th 2010, 8:32am

Content

Tags

AJAX, iframe

Abstract

Man kann AJAX verwenden um andere Dateiinhalte darzustellen. Doch vorsicht. Der XMLHttpRequest kann aus Sicherheitsgründen nicht direkt auf fremde URLs zugreifen. Daher leiten wir das ganze mit file_get_contents über ein PHP Script.

Article

1. index Datei


HTML Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<html><head>
<title>AJAX als IFRAME Ersatz</title>
 
<script type="text/Javascript">
<!--
function geturl(elem, url) {
	var req;
	try {
		req = window.XMLHttpRequest?new XMLHttpRequest(): 
		new ActiveXObject("Microsoft.XMLHTTP"); 
	} catch (e) {
		//Kein AJAX Support
	}
	req.onreadystatechange = function() {
		if ((req.readyState == 4) && (req.status == 200)) { 
			document.getElementById(elem).innerHTML = req.responseText;
		}
	};
	req.open('POST', 'fetch.php');
	req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
	req.send('url='+url); 
}
//-->
</script>
 
</head>
<body onload="geturl('hier','http://web.de')">
 
<div id="hier" style="width:230px;height:230px;overflow:auto"></div>
 
</body>
</html>


2. fetch.php


Für die Verwendung im echten Leben, sollten serverseitig im PHP Script noch einige Abfragen über erlaubte URLs geschehen.

PHP Quellcode

1
2
3
4
5
<?php
if(0 !== strpos($_POST['url'], 'http://')) {
  throw new Exception('url muss mit http beginnen');
}
echo file_get_contents($_POST['url']);

Lexikon 4.1.5, developed by www.viecode.com