2014-05-23 2 views
3

HTML 5 SSE - PHP 스크립트가 웹 페이지에 업데이트를 푸시 할 수있게 해주는 EventSource 객체를 사용하는 코드 블록이 있습니다. 그러나, 나는 또한 매개 변수를 스크립트에 전달하는 데 관심이있다. 어떻게해야합니까? 여기 HTML SSE에서 POST 매개 변수를 전달하는 방법은 무엇입니까?

코드이다 : 그러나

$.post("get_message.php", {largest_id: 30}, function(data, status){ some function }); 

같이이

if(typeof(EventSource) !== "undefined") 
    { 
     var source = new EventSource("get_message.php"); 
     source.onmessage=function(event) 
     { 
      document.getElementById("message-window").innerHTML+=event.data + "<br>"; 
     }; 
    } 
else 
    { 
     document.getElementById("message-window").innerHTML="Sorry, your browser does not support server-sent events..."; 
    } 

내가 생각할 수있는 가장 가까운 것은 AJAX를 사용하는 것입니다, 내가 작성하는 방법을 잘 모르겠어요 이 jQuery?

+0

정말 POST 본체가 필요합니까? 아니면 GET 매개 변수 (''새로운 EventSource ("get_message.php? largest_id = 30")')로 충분할 것인가? – Bergi

+0

@Bergi GET 매개 변수의 char 길이가 더 깁니다. 숯불 천장이없는 POST가 필요합니다. – blazonix

+0

글쎄, 그것은 웹 서버가 할 수있는 것과 브라우저의 특색에 달려 있습니다. 하지만 유스 케이스는 무엇입니까? 파일을 스트림 위치에 업로드 하시겠습니까? – Bergi

답변

1

너무 간단합니다.

$.post('your_url.php?your_parametre1=' + your_value1 + '&your_parametre2_likewise=' + your_value, function(data) { 
alert(data); // whatever you echo from php file as a identifier of success or error. 
}); 
+0

이것은 GET 요청에만 해당하는 것으로 생각 했습니까? POST 요청을 처리하고 싶다면 어떻게해야합니까? 매개 변수는 GET 매개 변수가 부과하는 상위 문자 길이를 초과 할 가능성이 매우 높습니다. – blazonix

0

@blazonix SSE를 사용할 때 발신과 수신을 구별해야합니다.

EventSource는 서버로부터 데이터를 수신하기위한 용도로만 사용됩니다. 서버에 데이터를 보내려면 일반 AJAX 요청을 사용해야합니다. 내 라이브러리에서

나는 전송 및 수신에 대한 동일한 경로를 재사용하는 것이 가능 만들고있어하지만 난 발신자가 헤더 동의를 기반으로 할 수 원하는 것을 구별하고 있습니다 :

  • 수락 : 텍스트/이벤트 -을 스트림 - 그것은 브라우저 및
  • 수락 이벤트 스트림 연결을 시작하고 싶어 : 다른 유형 -이/AJAX 호출 일반 비입니다 GET 또는 POST

샘플 자바 코드 : GitHub