2016-10-13 3 views
0

私はphpを使って長いプーリングをしています(うまくいきます)、出力JSONをfullcalenderイベントソースに割り当てています。NetworkError:403フルカレンダーにeventsourcrを割り当てると禁止されます

私のjsのコード

var source = new EventSource(WEBROOT+'model/applongpooling.php?start=1476037800&end=1476642600'); 
source.addEventListener('message', function(e) { 
    console.log(e.data); 
    $('#calendar').fullCalendar('removeEvents'); 
    $('#calendar').fullCalendar('addEventSource',e.data);// here i am getting error 
}, false); 

私のPHPのプーリングコード。

<?php 
    header('Content-Type: text/event-stream'); 
    header('Cache-Control: no-cache'); 
    function SetAppointment(){ 
     //my logic which is working fine and giving me correct result 

     echo 'data: ' . json_encode($res) . "\n\n";//code to get output 
     echo PHP_EOL; 
     ob_flush(); 
     flush(); 
    } 
do { 
SetAppointment(); 
    sleep(15); 

    // If we didn't use a while loop, the browser would essentially do polling 
    // every ~3seconds. Using the while, we keep the connection open and only make 
    // one request. 
} while(true); 
?> 

コンソールでは、正しく出力されています。

Consol Output

私は、私はまた、私は間違っている

eventSources: [ 
     { 
      url:'model/appointments.php', 
      editable: true, 
     } 
    ] 

はそう私の質問、fullcalenderするイベントソースを割り当てている別のjsで

Error

をエラーを取得しています助言がありますか?なぜ私はそのようなエラーを得ていますか?

答えて

0

あなたのエラーメッセージがあなたのEventSource()呼び出しと一致する可能性はないと思いますので、Apacheをリライトルール(またはそのようなもの)で使用していますか?もしそうならば、それらの書き換えルールにバグがあります。 (私はWEBROOTが何であるか尋ねようとしていましたが、私はそれについて考えていますが、それは問題ではないと思っています)

理由:EventSourceの呼び出しURLは "model/applongpooling.php?start = 1476037800 & end = 1476642600 "となります。しかし、あなたのエラーメッセージは "back_color%22:%22?start = 1476037800 & end = 1476642600"で終わります。私。すべての前に?変更されました。

私は、URL内のすべてのノイズが403エラーを引き起こしていると思います。例えば。たぶん、それは存在しないいくつかのディレクトリにアクセスしようとしていますか?しかし、書き換えの呼び出しで明示的に403を発行している可能性もあります。

+0

はい私はURLの書き換えを行っていますが、どうしたらエラーになるか説明してください。 :( – Archish

+0

@Archish(私が前提)書き換えられたURLは、存在しないか、何らかの形で無効なURLなので、表示されるエラーを引き起こします。 –

関連する問題