无法加载资源:在我的情况下,服务器响应状态为405(Method Not Allowed)

时间:2016-08-29 13:22:05

标签: javascript php jquery ajax

我通过jQuery,ajax和php进行了一些聊天,概念是:

  • 输入消息
  • 通过jQuery $.post()发送给 chat.php
  • chat.php 获取输入值并将其写入 ac.htm 文件
  • 然后jQuery加载 ac.htm 以显示对话

当我和WAMP在当地时,一切都很好,但是一旦我把它放到Github上,在线测试无法正常工作,在Chrome中,它显示:

  

无法加载资源:服务器响应状态为405   (不允许的方法)

我找到了很多答案,但它对我不起作用,仍然不明白为什么。

以下是Chat,(对话历史记录是我自己进行的本地测试

以下是Files

我也把代码放在这里。

html:

<div id="container">
    <fieldset>
        <legend>Chat 聊天</legend>
        <div id="list_messages">
            <div id="messages"></div>
        </div>
        <div id="zone_input">
            <input id="nom" type="text" size="10" value="pseudo(名字)">
            <input id="message" size="30" type="text">
            <button id="send" title="send"><img src="send.png" alt="send"/></button>
        </div>
    </fieldset>
</div>  

jQuery:

$(function (){
    afficher();
    function afficher (){
        // load the page htm to show the dialogue
        $('#messages').load('ac.htm');
    };

    // send the message to php then transfer to htm by php
    function envoyer (){
        var nom = $('#nom').val();
        var message = $('#message').val();
        $.post(
                'chat.php',
                {'nom' : nom, 'message' : message},
                afficher
              );
        $('#message').val('').focus();
    }

    // clic on the send button
    $('#send').click(function (){
        envoyer();
    });
    // type "enter"
    $(document).keyup(function (e){
        if (e.which == 13) {
            envoyer();
        };
    });
    // update the dialogue every one second
    setInterval(afficher, 1000);
});  

php:

<?php

$nom = $_POST['nom'];
$message = $_POST['message'];
$ligne = '<div class="ligne"><span class="nom">' . $nom . ' : </span><span class="message">' . $message . '</span></div>';
$leFichier = file('ac.htm');
array_unshift($leFichier, $ligne);
file_put_contents('ac.htm', $leFichier);

?>  

问题1 :那么如何使其有效? 问题2 :使这个聊天是OpenClassroom的在线课程,所以老师的代码说,在jQuery结束时,我们需要setInterval()不时更新对话,这使得发送消息延迟,如果我删除setInterval(),没有更多延迟,但这意味着我只能看到通过刷新页面从其他用户更新的对话,如果从手机聊天更糟,没办法刷新,那么如何才能摆脱这种延迟呢?

0 个答案:

没有答案