2014-12-15 4 views
1

У меня есть форма,Chrome не form.submit собирается правой URL

<form name="myForm" method="post" action="MyPage" id="myForm" style="display:inline;"> </form> 

который я вношу с JavaScript.

function performFunction() { 
    $('#myForm:first').submit(); 
} 

В IE и FF это приведет к правильному действию post в приложении asp.net; поэтому mySite.com/MyPage. В Chrome, однако, похоже, что вы собираетесь на mySite.com. Посмотрев на вкладку сети, я вижу, что запрос на сервер действительно просто mySite.com. Еще страннее, если я использую вышеуказанный JS-код в консоли DevTools, он будет корректно отправляться, даже если это точка останова в этой точке.

Я искал, если атрибуты формы получали изменения непосредственно после отправки, поскольку я читал хром, проблема с этим. Это, похоже, не так.

Зачем это происходит?

+2

Попробуйте установить 'action' в'/MyPage', чтобы он явно указывал URL-адрес относительно корня. Кроме того, селектор ': first' является избыточным, так как вы выбираете' id', который должен быть уникальным на странице. –

ответ

1

Изменить

action="MyPage" 

в

action="/MyPage" 

Если это решение не работает, попробуйте:

function performFunction() { 
    setTimeout(function() { 
     var myForm = $('#myForm'); 
     myForm.action = '/MyPage'; 

     form.submit(); 
    }, 0); 
}; 

Подробнее об этой проблеме здесь:
https://code.google.com/p/chromium/issues/detail?id=104205

+0

второй раствор работал. – Adam

Смежные вопросы