сформируйте POST в iframe, не влияя на историю

+1 к ответу Jehiah.

Официальный и счастливый метод при получении счетчиков объекта на GAE должен создать счетчик черепка . Несмотря на в большой степени звучащее имя, это довольно просто.

9
задан Brian 6 March 2010 в 03:30
поделиться

4 ответа

Работает ли использование JS для добавления IFRAME, чей src размещен на вашем сайте (домен, в который сторонний скрипт должен отправлять данные?) Этот IFRAME может включать нужен Javascript, чтобы сделать XMLHttpRequest для вашего / его домена. А что касается получения фактических данных в этот IFRAME со стороннего сайта - попробуйте: http://softwareas.com/cross-domain-communication-with-iframes . Это довольно умное решение, включающее изменение идентификаторов фрагментов (#something) в конце URL-адреса IFRAME, который затем можно прочитать через JS в IFRAME.

Также предположение, но если вы возьмете это прошлое решение SO для аналогичной проблемы с историей (с использованием location.replace), описанной выше, это, надеюсь, позволит вам выполнить часть изменения привязки без нарушения стека истории.

1
ответ дан 5 December 2019 в 02:08
поделиться

Вам следует использовать AJAX POST .

Обычно при создании приложений Ajax используется только метод GET. Но есть несколько случаев, когда POST необходим при создании запроса ajax. Это могло быть по нескольким причинам. Например, запрос POST считается более безопасным, чем запрос GET, поскольку создание запроса POST относительно сложнее, чем создание запроса GET.

Вызовы AJAX не сохраняются в истории просмотров.

3
ответ дан 5 December 2019 в 02:08
поделиться

Если ваш сервер может запускать код, вы, вероятно, могли бы выполнить ajax-запрос к «прокси-странице» на вашем сервере, которая затем сама запустит запрос на удаленном сервере и вернет результаты на ваша страница.

0
ответ дан 5 December 2019 в 02:08
поделиться

Как указывалось в комментариях, решение этой проблемы состоит в том, чтобы сделать запрос AJAX с вашего сервера вместо попытки отправить страницу в обычном режиме. У W3schools есть действительно хорошее введение в AJAX, которое вы можете найти здесь: http://www.w3schools.com/Ajax/Default.Asp

По сути, AJAX использует javascript для отправки запроса на сервер и отображает ответ, и поскольку это происходит с использованием чистого javascript, страница не перезагружается, и история не изменяется. Это похоже на то, что вы хотите.

Изменить: AJAX не может публиковать данные.

Я действительно думаю, что может; или, по крайней мере, есть обходные пути, позволяющие публиковать данные. См. Здесь:

http://www.captain.at/howto-ajax-form-post-request.php

Кажется, это делается довольно просто. См. Код внизу страницы. В частности:

http_request.onreadystatechange = alertContents;
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
-2
ответ дан 5 December 2019 в 02:08
поделиться
Другие вопросы по тегам:

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