使用curl命令进行Ajax长轮询

时间:2015-07-07 21:01:17

标签: javascript php ajax spring curl

我的localhost上有我的文件,我正在尝试向我的web服务器发出一个HTTP长轮询请求,该服务器托管在localhost:7305中。由于浏览器使用端口80进行调用,因此出现错误

XMLHttpRequest cannot load. Origin is not allowed by Access-Control-Allow-Origin. No "Access Control Allow Origin" header is present on the request resource.

所以我设计了一个带curl的php代码来进行调用:

 <?php
 error_reporting(E_ALL);
 ini_set('display_errors', '1');

 $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, "http://localhost:7555/test?list=0");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_PORT, 7555);

 curl_setopt($ch, CURLOPT_TIMEOUT, 10);

 $out = curl_exec($ch);

 curl_close($ch);

 echo $out;

 ?>

在我的JavaScript中,这是我如何制作ajax长轮询请求:

 function longpoll(){
      $.ajax({
        url: "http://localhost/bypass.php",
        type: "GET",
        success: function(m) {
           //update some html element with the response
        },
        error: function(e){
           //Error report
        },
        complete: longpoll
        });
 }

它应该返回一个字符串列表,但是我收到了错误

 GET http://localhost/bypass.php 500 (Internal Server Error)
 f.support.ajax.f.ajaxTransport.send
 f.extend.ajax
 longpoll

我不确定是什么造成的?可能是因为ajax正在进行异步调用? Web服务器处于spring并返回DeferredResult对象。任何帮助表示赞赏

0 个答案:

没有答案