我正在向ajax.php
使用 cURL 下载 XML 的文件发送 Ajax 请求。
//ajax.php
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERPWD, USERNAME.':'.PASSWORD);
curl_setopt($ch, CURLOPT_POSTFIELDS, getData());
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
$data = curl_exec($ch);
echo $data;
用户未确认此过程,可能会刷新网页。
有时curl_exec($ch)
需要很长时间,我得到一个timeout
错误。此错误阻止脚本继续。我搜索并没有找到解决此问题的确切解决方案。
现在更大的问题是,在这种情况下,当 ajax 请求在后台处理并且用户刷新页面时,它不会刷新,直到 ajax 请求超时或结束。
我认为在页面刷新时中止该 cURL 请求是一个很好的临时解决方案,但不知道该怎么做。
注意:已经使用 jQuery 设置了 Ajax 请求,但中止它ajax.abort()
并没有解决问题。