$ .post无法在firefox中运行,适用于chrome

时间:2018-02-19 16:04:20

标签: jquery firefox

post请求是一个简单的消息,其中包含从表单中重新获取的两个参数。 当我发送表单时,我被重定向但是没有调用回调函数(控制台中应该有一条消息)。 有任何想法吗?铬合金工作正常......

 <form action="#" method="post">
    <input type="text" id="message" size="27">
    <input style="display:none;" type="text" id="pseudo" size="27" value="<?php echo '<span class=chatType>[' . $_SESSION['type'] . ']</span><span class=chatPseudo> ' . $_SESSION['pseudo'] . '</span>'; ?>">
    <button type="submit" id="envoyer" title="Envoyer" class="sendbutton">Send</button>
  </form>
</fieldset>


<script>
  $(function() {
    afficheConversation();

    $('#envoyer').click(function() {
        var message = $('#message').val();
        var pseudo = $('#pseudo').val();
        $.post('/../chat.php', { 
          'message': message,
          'pseudo':  pseudo,
           async:false
        }, function () {
          console.log('message sent : '+message);
          $('#message').val('');
          afficheConversation();
        });

1 个答案:

答案 0 :(得分:0)

问题是因为您在不停止该事件的情况下将事件处理程序附加到submit按钮的单击,因此form仍在提交,这反过来又会中止您的AJAX请求它正在进行中。

要修复此问题并使逻辑语义化,请挂钩submit的{​​{1}}事件,然后对传递的事件调用form以停止提交。像这样:

preventDefault()

另请注意,看起来您尝试使请求同步,但语法不正确,因此设置无效。请注意,这是一个非常糟糕的解决方案,永远不应该使用。浏览器甚至会警告你。使用带有回调模式的异步调用是实现此处尝试的最佳方式。