Мне просто хотелось бы узнать, возможно ли одновременно отправлять запросы GET и POST AJAX, и если это так, как это сделать, используя объект XMLHttpRequest
.Отправка запросов GET и POST AJAX в то же время
Спасибо всем за помощь: D
Мне просто хотелось бы узнать, возможно ли одновременно отправлять запросы GET и POST AJAX, и если это так, как это сделать, используя объект XMLHttpRequest
.Отправка запросов GET и POST AJAX в то же время
Спасибо всем за помощь: D
Отправить заявку как POST
. HTTP-запрос может иметь только один метод, но ничто не мешает вам использовать параметры на URL-адрес POST
.
Если вы POST
до http://example.com/form?foo=bar
, вы по-прежнему сможете получить доступ к foo
как параметр GET
.
Вот пример использования JQuery:
$.post("http://example.com/form?" + $.param({foo: "bar"}), {text: tinyMCEBody})
Без JQuery, который будет выглядеть следующим образом:
…
request.open("POST","form?foo=bar",true);
request.send("text=" + encodeURIComponent(tinyMCEBody));
…
Точно - это так просто, правильно ?! – TimS
Я знаю это, но я читал, что URL-адрес GET не может быть длиннее 2048 символов. Поэтому я решил отправить область TinyMCE содержимое по POST – siannone
Я не понимаю проблему. Можете ли вы опубликовать пример? Я обновил свой вопрос немного подробнее. – s4y
ли вы имеете в виду вы хотите отправить некоторые строки запроса значения вместе с POST? Наверняка это всего лишь пример добавления URL-адреса для публикации?
Мне нужно послать короткие аргументы GET и еще один аргумент (который может быть очень длинным [> 2040 символов] с POST. – siannone
Не могли бы вы просто сделать два экземпляра XMLHttpRequest
? Таким образом, вы могли бы:
Получить
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp1=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp1.onreadystatechange=function()
{
if (xmlhttp1.readyState==4 && xmlhttp1.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp1.responseText;
}
}
xmlhttp1.open("GET","ajax_info.txt",true);
xmlhttp1.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
</html>
POST
<html>
<head>
<script type="text/javascript">
function loadXMLDoc2()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp2=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp2.onreadystatechange=function()
{
if (xmlhttp2.readyState==4 && xmlhttp2.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp2.responseText;
}
}
//Set POST params
var params = "lorem=ipsum&name=binny";
xmlhttp2.open("POST","ajax_info.txt",true);
xmlhttp2.send(params);
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc2()">Change Content</button>
</body>
</html>
Все, что я изменил это название объекта xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP")
и xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP")
Взятые из W3Schools http://www.w3schools.com/ajax/default.asp
Я пробовал этот путь, но это похоже на то, что принимающая php-страница не принимает параметры POST. Фактически, php-страница неправильно распознает параметры. – siannone
Итак, вы имеете в виду, что при попытке использовать два экземпляра объекта XMLHttpRequest на целевой странице не получались почтовые переменные, но когда вы использовали только один экземпляр, он работал? –
Да, когда я использую только параметры GET, он работает. – siannone
@Aircule - Конечно, мне нужно отправить очень длинный аргумент другая php-страница через ajax. Аргумент, который я хочу отправить на страницу php, содержит данные TinyMCE, длина которых может превышать 2048 символов. – siannone
Что мешает вам использовать POST? – quantumSoup