Доступ к сценарию cgi через JavaScript - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь создать ссылку, по которой при щелчке происходит переход на сайт, на котором он должен, но также запускается скрипт cgi. Я нашел разные примеры, но до сих пор не до конца понимаю.

По сути, у меня есть два вопроса:

  1. Где я могу разместить скрипт, чтобы я мог получить к нему доступ?
  2. Как мне получить к нему доступ?

Ответы [ 2 ]

1 голос
/ 25 января 2012

Где я могу разместить скрипт, чтобы я мог получить к нему доступ?

Если вы хотите получить к нему доступ из JavaScript, тогда он должен быть в том же источнике (то есть имя хоста и порт)как страница, на которой выполняется JavaScript.

Как мне получить к ней доступ?

Вы можете либо забыть JavaScript, иметь обычную ссылку, а затем заставить CGI выполнить302 перенаправление, или вы можете использовать Ajax .

Остерегайтесь проблем с синхронизацией.Браузер может перейти к следующему URL-адресу, прежде чем он сделает запрос Ajax.Перенаправление, вероятно, будет лучшим подходом.

1 голос
/ 25 января 2012
<script>
function callYourCGI(){
    var i = new Image();
    i.src = "your-cgi-url?name=value&name2=value2";
}
</script>
<a href="the-next-document.html" onclick="callYourCGI()">

Объект Image является частью HTML DOM. Это позволяет вам манипулировать изображениями на HTML-странице. Читайте об этом здесь: http://www.javascriptkit.com/jsref/image.shtml

Сценарий создает объект изображения, а затем назначает URL-адрес вашего сценария CGI атрибуту SRC. Это заставляет браузер выполнять запрос на получение содержимого URL. В этом случае вы не собираетесь отображать объект изображения, поэтому содержимое, возвращаемое вашим CGI-скриптом, не обязательно должно быть реальным изображением. Если можно, если хочешь, хотя. В любом случае, побочным эффектом является то, что ваш CGI-скрипт вызывается с некоторыми параметрами, если это необходимо. Преимущество этого метода заключается в том, что он не нарушает ту же политику происхождения, поскольку изображения могут быть загружены из любого места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...