представление формы HTML

Я смотрю на форму HTML внешнего веб-сайта (не сохраняемый один) в следующем формате:

<form onsubmit="return check(this)" method=post action=address.aspx target=ttPOST>
....
</form>

Я хочу отправить данные на этот внешний веб-сайт, не имея необходимость проходить форму, и нажатие отправляют.

Я могу просто перейти к URL 'address.aspx' и добавить его с необходимыми входными параметрами?

Моя цель состоит в том, чтобы автоматизировать периодическую регистрацию информации, выбранной из списка частого изменения значений на веб-сайте. (Использование Python и AutoIt)

1
задан Sean Vieira 28 July 2010 в 16:19
поделиться

6 ответов

Почему вы хотите обойти отправку формы? Отправьте форму и используйте значения в HTTP_POST. Вы можете использовать HTTP_GET, изменив метод на GET в приведенном выше html, но форма все равно будет отправлена.

Один из способов отправить параметры в address.aspx - использовать javascript .... создать строку со всеми параметрами и отправить ее в address.aspx, когда пользователь нажимает кнопку отправки. Вам нужно будет отключить поведение кнопок отправки по умолчанию.

0
ответ дан 2 September 2019 в 22:39
поделиться

POST - это не то же самое, что GET - если вы добавите данные, которые хотите, к URL-адресу, страница не увидит ваши переменные. То есть ПОЛУЧЕНИЕ (также называемое "переходом") http://www.the-other-site.com/address.aspx?variable1=a&variable2=b не будет работать.

Вам необходимо создать запрос POST и отправить его на address.aspx .

Если вы хотите сделать это самостоятельно, вам понадобится модуль Python urllib2 (точнее, объект Request ). Если вы хотите использовать готовое решение, вам понадобится что-то вроде Mechanize для POST ваших переменных.

0
ответ дан 2 September 2019 в 22:39
поделиться

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

Для большинства языков вы можете получить вещи, которые помогут вам моделировать веб-запросы. Большинство из них, вероятно, позволит вам сделать почтовый запрос и предоставить почтовые данные. Я не знаю python и autoit, но в общем смысле вам просто нужно получить пары имя-значение, просмотрев HTML-код формы (или изучив запрос, отправляемый на сервер, вероятно, лучше), а затем сделать отправить запрос.

Как говорили другие, если вы хотите просто добавить значения к URL-адресу, тогда сервер должен будет с радостью принять запрос GET вместо сообщения. Иногда вы обнаружите, что серверы будут делать это с радостью (им все равно, как выполняется отправка формы, пока они получают данные), в других случаях он будет специально искать сообщение и будет игнорировать параметры, переданные как часть строки запроса. .

1
ответ дан 2 September 2019 в 22:39
поделиться

Измените атрибут метода с POST на GET .

О различиях читайте здесь .

Вы можете обойтись без изменения URL-адреса для перехода на внешний сайт, используя тот же синтаксис параметра GET (? Param1 = val1 & param2 = val2 ... ), но чтобы для этого вам нужно будет написать эту логику самостоятельно на javascript.

0
ответ дан 2 September 2019 в 22:39
поделиться

Вы можете делать запросы AJAX GET (добавляя данные к URL-адресу) и выполнять их с определенным интервалом времени.

Я бы порекомендовал jQuery, но он может быть не идеальным в среде .NET.

jQuery.ajax () - http://api.jquery.com/jQuery.ajax/
jQuery.get () - http://api.jquery.com/jQuery. get /

ПРИМЕЧАНИЕ :

Я хочу публиковать данные на этом внешнем веб-сайте, не просматривая форму и не нажимая кнопку «Отправить».

Я понял, что вы не хотите отправлять форму, вы хотите отправить форму, но просто не нажимая кнопку отправки? Если вы действительно хотите, чтобы форма была отправлена, вам действительно следует просто изменить атрибут формы method на get вместо post .

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

0
ответ дан 2 September 2019 в 22:39
поделиться

Вы можете использовать JQuery.post()

<form action="#" class="myForm" method="post">
    <input type="text" id="field1" name="field1" value="" runat="server" />
</form>
// Submit
<div onclick="submit();return false;">Submit</div>

Тогда функция submit() выглядит так

function submit() {
    $.post("address.aspx", $("form.myForm").serialize(), function(data, textStatus)
    {
        // Handle success or error
    });
}

В codebehind вы можете получить доступ к переменным post

Request.Form["field1"]
1
ответ дан 2 September 2019 в 22:39
поделиться
Другие вопросы по тегам:

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