我正在尝试将参数传递给用于传输服务器端事件的PHP脚本。我正在使用Javascript来收听事件。我试图通过将查询字符串附加到服务器端脚本url来传递参数:
使用Javascript:
var source = new EventSource("demo_sse.php?file=query");
demo_sse.php:
<?php
header("Content-Type: text/event-stream\n\n");
echo 'data:'.$_GET["file"]."\n\n";
?>
我希望看到“查询”显示,但我没有输出。
我也尝试过:
echo 'data:'.$_SERVER['QUERY_STRING']."\n\n";
但仍然没有输出。我已验证该脚本是否正常工作(可以打印显式字符串)。
我在这个问题上找不到多少,但我确实找到了几个将查询字符串附加到EventSource参数中的url的示例:Server Sent Events Stop Start with new parameter。
答案 0 :(得分:2)
我尝试了以下代码,SSE似乎有效:
var es = new EventSource('http://localhost/ssed.php?asdf=test111');
es.onmessage=function(e){console.log(e.data);}
ssed.php:
<?php
header("Content-Type: text/event-stream\n\n");
echo 'data:'.$_GET['asdf']."\n\n";
你的onmessage函数是如何编写的?您的浏览器是否可能不支持SSE?