omdiager AJAX kald med cURL
Omdiriger AJAX kald med cURLJeg vil gerne kunne fortage en XMLHttpRequest til en af mine subdomæner.
Problemet er så bare at det opfattes som et "cross domain" kald, hvilket ikke er "tilladt".
Løsningen må være at lave en php side der bruger cURL, og som tager alle de parameter der blev sendt til siden og sender dem videre til en anden side.
Jeg har forsøgt mig med denne kode:
cURL
<?php
date_default_timezone_set("Europe/Copenhagen");
error_reporting(E_ALL);
/*** disable "magic quoutes if exist ***/
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
//Start cURL
$cURL = curl_init();
//sætter URL
curl_setopt($cURL, CURLOPT_URL, $_GET['url']);
curl_setopt($cURL, CURLOPT_HEADER, true);
curl_setopt($cURL, CURLOPT_POST, true);
curl_setopt($cURL, CURLOPT_TIMEOUT, 60);
$headers = '';
foreach (getallheaders() as $header => $value) {
$headers .= $header .":". $value . "\n";
}
$post = '';
foreach ($_POST as $key => $val) {
$post .= $key ."=". $val . "&";
}
$post = subStr($post,0,strlen($post) - 1);
curl_setopt($cURL, CURLOPT_HTTPHEADER, (array)$headers);
curl_setopt($cURL, CURLOPT_POSTFIELDS, $post);
if (curl_errno($cURL)) {
echo 'Error: '. curl_error($cURL);
} else {
curl_exec($cURL);
curl_close($cURL);
}
Scriptet skulle gerne blive kaldt som fx: http://minside.dk/curl.php?url=http://eksperten.dk
Problemerne er så bare:
1. Jeg kan ikke finde nogen god måde at teste om det virker.
2. Når jeg ligger det op på min server/host fejler det med beskeden: getallheaders()
3. Der vises bare en blank side når jeg køre: http://localhost/curl.php?url=http://eksperten.dk
4. Jeg har enlig ikke meget forstand på HTTP 1.1/1.0
