使用服务器发送事件自动刷新浏览器

时间:2018-03-22 17:02:01

标签: javascript php codeigniter webhooks server-sent-events

当我接到电话时,我正在使用第三方API来调用服务器上的URL。

我正在尝试实现服务器发送事件,以便在API调用我的URL时重新加载浏览器,但是当我对api_new_call函数进行POST测试时页面不会刷新。

我正在使用PHP(codeigniter)

使用Javascript:

var source = new EventSource("/controller/new_call_trigger");
source.onmessage = function(event) {
    location.reload();
};

Controller.php这样:

public function api_new_call() {
    $called_number = $this->input->post('called_number');
    $calling_number = $this->input->post('calling_number');
    $new_cad = $this->Model->api_new_cad($calling_number);
    $this->new_call_trigger();
}


public function new_call_trigger() {
    header('Content-Type: text/event-stream');
    header('Cache-Control: no-cache');
    echo "data: TEST";
    flush();
}

1 个答案:

答案 0 :(得分:0)

您有此代码

header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
echo "data: TEST";
flush();

这些标题都没有刷新页面。您将要添加此内容。

header('Location: ' . $_SERVER['REQUEST_URI']);

将其添加到echo上方,否则您的标题已经发送错误。

此外,请检查发布信息,否则您将错误地重定向错误