Я практикуюсь на AJAX и RESTful Web Services, и я получил ошибку на консоли, которая говорит:
Блокировка перекрестного запроса: та же политика происхождения запрещает чтение удаленного ресурса в … бла-бла-бла …
Итак, мой код не работает ни в одном браузере, кроме Safari!
Во всех других браузерах, таких как Chrome, Firefor или Opera, я получал ту же ошибку.
Пока я искал в интернете, я обнаружил, что единственный способ добиться этого — создать прокси-сервер, который будет отправлять запрос на сервер, а затем добавлять заголовки в ответ обратно клиенту.
Решение www.corsproxy.com великолепно, но я просто хочу иметь свой собственный прокси! 🙂
Мой простой код jQuery:
var dataURL = "http://fou.com/last.json";
$.ajax({
url: dataURL,
async: true,
type: "GET",
dataType: "json",
success: editData
// editData it's a function which gonna edit the data from fou.com ..
})
Какой код будет в соответствии с этим?
Вы можете сделать что-то вроде этого:
JS:
var dataURL = "http://fou.com/last.json";
var proxyUrl = "http://myproxy.com/?get=";
$.ajax({
url: proxyUrl+encodeURIComponent(dataURL),
async: true,
type: "GET",
dataType: "json",
success: editData
})
PHP часть на http://myproxy.com :
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $_GET['get']
));
curl_exec($curl);
?>
Часть PHP очень упрощена, чтобы дать вам представление.
Других решений пока нет …