$ .post не работает на локально развернутом сайте - PullRequest
1 голос
/ 28 сентября 2010

Я недавно "преобразовал" веб-сайт HTML в веб-формы. Под преобразованием я подразумеваю, что я открыл веб-сайт в Visual Studio 2010, добавил файл web.config для разрешения протокола HttpPost и назвал его преобразованным. Однако моя форма не хочет публиковать на моей странице .aspx. Что мне не хватает? Когда я собираю приложение, не создается двоичный файл для развертывания на моем локальном IIS (7.5 в Windows 7)

<form name="register2" method="post" action="#" onsubmit="return false;">

Тогда мой $ .post находится в моем $ (function () {...

$('form[name="register2"]').submit(function () {
    var $registerForm2 = $('form[name="register2"]');
    if ($registerForm2.valid()) {
        $.post({
            type: 'POST',
            url: 'CreateAccount.aspx',
            data: $(this).serialize()
        });
    } else { //do validation
        $registerForm2.validate();
    }
});

Когда я отправляю форму, Chrome сообщает мне, что URL-адрес запроса URL:http://localhost/mysite/[object%20Object] и получает код ошибки 404. Страница CreateAccount.aspx существует.

Ответы [ 2 ]

4 голосов
/ 28 сентября 2010

Теперь я вижу проблему. метод $.post() не поддерживает использование объекта параметров в качестве параметра.

из документации :

$.post('ajax/test.html', function(data) {
  $('.result').html(data);
});

поэтому измените свой код на:

 $.post( 'CreateAccount.aspx', $(this).serialize() );

и попробуй.

0 голосов
/ 28 сентября 2010

Вам необходимо изменить расширение ваших страниц на .aspx, чтобы среда ASP.NET обрабатывала его.Вам также понадобится директива <%@ Page %> в верхней части страницы, чтобы указать, что страница должна быть скомпилирована.

Кроме того, вам необходимо добавить runat="server" в тег FORM.

Попробуйте добавить новую страницу WebForm в проект, чтобы увидеть, как она настроена по умолчанию, и убедитесь, что она работает.

...