我想使用Codeigniter从CURL请求中调用javascript函数。基本上,我想在数据库中输入数据时在浏览器中触发通知。因此,当输入数据时,我将使用CURL请求并加载一页,然后在该页面中调用触发通知功能。我在下面尝试过,但是没有用。
用于卷曲请求的PHP代码
$post = $_POST;
$url = str_replace('/ws/'.APP_VERSION,'',site_url('mydomain/notification_update'));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
另一个基于CURL请求调用的PHP页面
public function notification_update() {
$post = $_POST;
$this->load->view('header', $post, FALSE);
}
查看页面
<script type="text/javascript">
var w_type = '<?= (isset($w_type) && $w_type == 'for_window_noty') ? $w_type : '' ?>';
console.log('w_type', w_type);
if(w_type) {
console.log('succes test');
}
</script>
我这里只是用于查看页面的javascript代码。
注意:我的发布参数是w_type = for_window_noty
答案 0 :(得分:0)
服务器发送事件
使用事件监听器监听Server Sent Events。
触发后,显示您的消息。
它使用事件源
if (!!window.EventSource) {
var source = new EventSource('stream.php')
} else {
// Result to xhr polling :(
}
你可以听
source.addEventListener('message', function(e) {
console.log(e.data)
}, false)
WebSockets API
另一种方法是使用WebSockets API。
WebSocket允许客户端和服务器之间进行双向通信。
要付出一些代价才能实现。