Ajax / Jquery脚本对某些用户不起作用

时间:2012-11-22 11:09:12

标签: jquery ajax

以下是我在网站上用来发送即时消息的脚本。它在99.9%的情况下工作正常,但有时用户报告他/她无法发送消息。 今天我收到了MIE 8.0用户的新报告。我检查了服务器的日志文件,发现MIE 8.0忽略了这个脚本。当用户单击“发送”按钮而不是POST请求时,浏览器会将包含所有表单数据的GET请求发送到表单所在的同一文件。这位用户说几天前一切正常。我没有更改我的文件中的任何内容,我不认为这个用户几天前将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>

1 个答案:

答案 0 :(得分:0)

查看this post以了解该解决方案是否可以帮助您。该用户说他的URL格式导致GET而不是您怀疑的POST。请尝试使用此网址:

url: "/messages/?do=send"

OR

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

或者根据您的后端语言进行适当的扩展。