Существует еще одна возможность, если вам нужно разместить вызовы на странице в другом домене.Допустим, ваш Javascript запускается из index.php.Вы можете создать файл с именем ctexter.php.ctexter.php будет использовать curl для отправки запроса на http://cabbagetexter.com/send.php,, а затем будет выводить ответ (вывод из) send.php.Итак, если index.php выполняет ajax-вызов ctexter.php, а ctexter.php выводит ответ из send.php, вы фактически достигли своей цели.эта функция:
function post_request($url, $data) {
$output = array();
foreach ($data as $key => $value) {
if(is_object($value) || is_array($value)){
$data[$key] = serialize($value);
}
}
$output = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
if ($result) {
$output['status'] = "ok";
$output['content'] = $result;
} else {
$output['status'] = "failure";
$output['error'] = curl_error($ch);
}
curl_close($ch);
return $output;
}
где $ url (очевидно) - это URL для публикации, а $ data - это ассоциативный массив, содержащий данные, которые вы хотите отправить.
Затем на ctexter.php вы можете сделать что-то вроде:
// Since we already built the post array in the
// ajax call, we'll just pass it right through
$response = post_request("http://cabbagetexter.com/send.php", $_POST);
if($response['status'] == "ok"){
echo $response['content'];
}
else{
echo "It didn't work";
}
Наконец, нажмите ctexter.php, используя JQuery .post () :
$.post("ctexter.php",
{
firstparamname: "firstparamvalue",
somethingelse: "llama"
},
function(data) {
alert("It worked! Data Loaded: " + data);
});