Предполагая, что вам нужно отправить запрос POST асинхронно, вы можете проверить приведенный ниже пример, чтобы вы пошли в правильном направлении:
<img src="my_image.png" onClick="postOnClick();">
Затем вам требуется функция JavaScript, которая отправляет асинхронный HTTP-запрос POST и перенаправляет браузер на URL-адрес, полученный из HTTP-ответа. Вы должны быть в состоянии использовать XMLHttpRequest
для такого асинхронного вызова, как в следующем примере:
function postOnClick()
{
var http = new XMLHttpRequest();
var params = "arg1=value1&arg2=value2";
http.open("POST", "post_data.php", true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
window.location = http.responseText;
}
}
http.send(params);
}
Обратите внимание, что для действительно кросс-браузерного XMLHttpRequest
вызова вы можете использовать стандартную кросс-браузерную реализацию XMLHttpRequest, такую как XMLHttpRequest.js , если только вы не используете какую-либо инфраструктуру JavaScript, такую как jQuery , Прототип , YUI , ExtJS и др.
Кроме того, обратите внимание, что вышеприведенное будет работать только в том случае, если вы публикуете скрипт, размещенный в том же домене, в противном случае вы нарушите политику одного происхождения , и современные веб-браузеры откажутся отправьте запрос.