【发布时间】:2012-12-01 12:32:11
【问题描述】:
我正在向 ajax.php 文件发送 Ajax 请求,该文件使用 cURL 下载 XML。
//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 请求是一个很好的临时解决方案,但不知道该怎么做。
注意: Ajax 请求已使用 jQuery 设置并中止它ajax.abort() 并没有解决问题。
【问题讨论】:
-
你知道你可以回答你自己的问题,对吧?
-
@wormhit 完成朋友!但它对我有什么帮助?
-
很多用户一看到回答率低就没有回答问题。您正在失去真正会调查您的问题的用户。我不是在评判你或任何事情。只是信息。
-
@wormhit You're mistaken