Vincent, я не предлагаю, чтобы любой переписал существующие каналы RSS только ради него, который был бы большой пустой тратой времени! С точки зрения RSS, являющегося акронимом, который определяет категорию, я предполагаю, что большинство пользователей теперь отождествляет с оранжевым значком канала, а не определенным ароматом XML позади него.
Для JSONP на PHP см. Пример здесь . Вы добавляете параметр «обратный вызов» к URL-адресу, определяющий имя функции для запуска, и в своем PHP-коде убедитесь, что вы исполнили JavaScript, который вызывает обратный вызов с данными. jQuery внедряет элемент скрипта с вашим контентом - при запуске вызывает обратный вызов.
t записывать что-либо в данный момент (может быть сетевое отставание или какая-то другая проблема, но определенно (пока) не фатальная). Обновление: Как caf указал в комментариях, я забыл принять во внимание обработку сигналов. Вы должны игнорировать сигнал разорванной трубы, иначе запись
завершится внутренним сбоем, подняв этот сигнал.
Вы можете сделать это, вставив:
struct sigaction new_actn, old_actn;
new_actn.sa_handler = SIG_IGN;
sigemptyset (&new_actn.sa_mask);
new_actn.sa_flags = 0;
sigaction (SIGPIPE, &new_actn, &old_actn);
перед тем, как начать использовать функции сокета. Затем вы можете использовать:
sigaction (SIGPIPE, &old_actn, NULL);
, чтобы восстановить предыдущую обработку сигнала.
$callback = $_GET["callback"];
$user = $_GET["username"];
if($user == "lazy") {
$response = array("message" => "SUCESS");
} else {
$response = array("message" => "FAIL");
}
echo $callback . "(". json_encode($response) . ");";
Затем вы можете использовать его с jQuery $. GetJSON
:
$.getJSON("jsonpTest.php?callback=?", { username: "lazy"}, function(json){
alert("JSON Data: " + json.message); // SUCCESS
});
Вы можете попробовать создать полный URL-адрес с номером порта ( http: // myserver: [port] /userCheck.php
), но выиграл ' t работа . ( Та же политика происхождения )
Выполнение запроса на другом порте - это не то, для чего вам следует использовать JSONP, потому что любая хорошая структура JSONP заблокирует это (или, по крайней мере, должна). Разрешение этих вещей не является основной целью JSONP, это всего лишь побочный эффект от реализации.
Но вы можете создать «фасадный» PHP-скрипт на том же порту, что и index .html
, который затем выполняет запрос к другому URL-адресу и возвращает значение. Таким образом, браузер не знает настоящего URL.
index.html (8080) <--> myAjaxFacade.php (8080) <--> userCheck.
вы не можете сделать это из-за той же политики происхождения . Поскольку порты разные, применяется одна и та же политика происхождения, которая блокирует ваш вызов XHR.
Для таких действий вам нужно будет использовать прокси. Вы можете взглянуть на JsonP или создать свой собственный прокси с помощью curl или скопировать свой код, чтобы он был на том же порту.