Php Ajax无法捕获Pusher实时事件
我已经做了一个推送消息演示系统的基础上的一本书读。我创建了3个文件,test.html、test.js和post.php。当我单击submit时,ajax不会捕获它并阻止它刷新。 我检查了Pusher日志,php消息与值一起发送。我相信错误在test.js中。下面是代码 Test.jsPhp Ajax无法捕获Pusher实时事件,php,html,ajax,real-time,pusher,Php,Html,Ajax,Real Time,Pusher,我已经做了一个推送消息演示系统的基础上的一本书读。我创建了3个文件,test.html、test.js和post.php。当我单击submit时,ajax不会捕获它并阻止它刷新。 我检查了Pusher日志,php消息与值一起发送。我相信错误在test.js中。下面是代码 Test.js (function($){ var pusher= new pusher('bab47e76c61c0af0818a'), channel = pusher.subscribe('exercise-3
(function($){
var pusher= new pusher('bab47e76c61c0af0818a'),
channel = pusher.subscribe('exercise-3-2);
channel
.bind(
'send-message', function( data ) {
var cont= $('#messages');
cont.find('.no-messages').remove();
$('<li>')
.html(data.msg)
.appendTo(cont);
}
);
$('form').submit(function(){
$.post('post.php', $(this).serialize());
$('#message').val('').focus();
return false;
});
})(jQuery);
post.php
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
require_once 'Pusher.php';
$key = 'bab47e76c61c0af0818a';
$secret = 'PRIVATEINFO';
$app_id = 'PRIVATEINFO';
$pusher=new Pusher($key, $secret, $app_id);
if (isset($_POST['name']) && isset($_POST['message']))
{
$data =array(
'name'=> htmlentities(strip_tags($_POST['name'])),
'msg'=> htmlentities(strip_tags($_POST['message'])),
);
$pusher->trigger('exercise-3-2', 'send-message', $data);
}
和test.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test!</title>
</head>
<body>
<header>
Testing Pusher!
</header>
<section>
<form method="post" action="post.php">
<label>
NAME:
<input type="text" name="name"
placeholder="i.e. John" />
</label>
<label>
Message:
<input type="text" name="message"
id="message" value="Hey!" />
</label>
<input type="submit" value="send" />
</form>
</section>
<aside>
<h2> Messages!</h2>
<ul id="messages">
<li class="no-messages"> no messages yet</li>
</ul>
</aside>
<script src="http://js.pusher.com/2.2/pusher.min.js"></script>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="test.js"></script>
<script>
</script>
</body>
</html>
如果在上面的代码中包含格式设置,您很可能会得到更好的响应,因为其中包含大量的格式设置。我建议使用and作为旁注,看起来您正在覆盖JavaScript中的pusher变量。$.ajax调用也没有.success或.fail回调,因此您永远无法捕获来自PHP的响应。嗯,我把它放进了格式链接。但当我尝试发布时,我总是无法格式化为代码