Ajax jQuery на Другом Порте

Vincent, я не предлагаю, чтобы любой переписал существующие каналы RSS только ради него, который был бы большой пустой тратой времени! С точки зрения RSS, являющегося акронимом, который определяет категорию, я предполагаю, что большинство пользователей теперь отождествляет с оранжевым значком канала, а не определенным ароматом XML позади него.

5
задан 25 November 2009 в 07:15
поделиться

4 ответа

Для 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
    });
    
    1
    ответ дан 13 December 2019 в 05:37
    поделиться

    Вы можете попробовать создать полный URL-адрес с номером порта ( http: // myserver: [port] /userCheck.php ), но выиграл ' t работа . ( Та же политика происхождения )

    Выполнение запроса на другом порте - это не то, для чего вам следует использовать JSONP, потому что любая хорошая структура JSONP заблокирует это (или, по крайней мере, должна). Разрешение этих вещей не является основной целью JSONP, это всего лишь побочный эффект от реализации.

    Но вы можете создать «фасадный» PHP-скрипт на том же порту, что и index .html , который затем выполняет запрос к другому URL-адресу и возвращает значение. Таким образом, браузер не знает настоящего URL.

    index.html (8080) <--> myAjaxFacade.php (8080) <--> userCheck.

    8
    ответ дан 13 December 2019 в 05:37
    поделиться

    вы не можете сделать это из-за той же политики происхождения . Поскольку порты разные, применяется одна и та же политика происхождения, которая блокирует ваш вызов XHR.

    Для таких действий вам нужно будет использовать прокси. Вы можете взглянуть на JsonP или создать свой собственный прокси с помощью curl или скопировать свой код, чтобы он был на том же порту.

    2
    ответ дан 13 December 2019 в 05:37
    поделиться

    Для JSONP на PHP см. Пример здесь . Вы добавляете "

    0
    ответ дан 13 December 2019 в 05:37
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: