You are not logged in.

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

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