1

以下是我在网站上用于发送即时消息的脚本。它在 99.9% 的情况下都能正常工作,但有时一些用户报告说他/她无法发送消息。今天我收到了一份来自 MIE 8.0 用户的新报告。我检查了服务器的日志文件,发现 MIE 8.0 忽​​略了这个脚本。当用户单击“发送”按钮时,浏览器将 GET 请求连同所有表单数据发送到表单所在的同一文件,而不是 POST 请求。该用户说几天前一切正常。我没有更改文件中的任何内容,并且我认为该用户几天前没有将 MIE 升级到 8.0(最新版本是 9.0)。我有这个问题超过3年。报告此问题的用户并不多,但无论如何我想找到解决方案。

任何想法可能导致此问题?谢谢。

<script type="text/javascript">                                         
$(document).ready(function(){
$("#sendmessage").submit(function(){
    $("#note1").show().html('<div style="text-align: center;">Sending</div>');
    var str = $(this).serialize();
    $.ajax({
        type: "POST",
        url: "/messages.php?do=send",
        data: str,
        success: function(data) {
            if (data == "ERR1") {
                result = '<div class="red">Error1 1</div>';
                $(this).html(result);
            } 
            else if (data == "ERR2") {
                result = '<div class="red">Error2</div>';
            } 
            else {                              
                $("#fields").hide();
                result = data;
            }
            $('#note1').hide();
            $("#note").hide();
            $("#note").fadeIn(1000).html(result);
        }
    });
    return false;
  });
});
</script>

<form id="sendmessage" name="sendmessage" onsubmit="doCheck();">
...
<textarea></textarea>
...
<input type="submit" value="Send" onclick="doCheck();" />
</form>
4

1 回答 1

0

查看这篇文章,看看解决方案是否对您有帮助。该用户说他的 URL 格式导致了 GET 而不是您所怀疑的 POST。试试这个网址:

url: "/messages/?do=send"

或者

url: "/messages.php?do=send"

或者任何适当的扩展名取决于您的后端语言。

于 2012-11-22T11:22:34.833 回答