我的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对象。任何帮助表示赞赏