这个jQuery调用一个脚本来抓取一个页面并将一个json数组返回给jQuery。但是,在某些情况下,cURL脚本会导致重定向到验证码质询页面(请参阅类脚本中的cURL)。
一旦我确定cURL页面是验证码(而不是目标页面),我该如何将验证码重定向到用户?
我应该只提取验证码图像和表单的操作参数和隐藏字段,并重新创建表单以允许用户提交吗?
jQuery('#myDiv a').click
(
function()
{
jQuery('#loader').show();
var result='';
jQuery.ajax
({
contentType: "application/json; charset=utf-8",
dataType: "json",
url: getPage.php,
success: function(data)
{
if(data['captcha'])
{
//need to load the captcha page for the user to complete
return;
}
}
});
});
//Contents of getPage.php
class loadPageCurl {
function loadPage($url, $headonly = TRUE ){
$agents = 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16';
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, $agents);
curl_setopt($ch, CURLOPT_URL, $url);
$curlResp = curl_exec($ch);
curl_close($ch);
//check to see if captcha or regular page and process accordingly
if(//page is captcha)
{
//Redirect the html stream to the user for captcha completion
}
else
{
return $curlResp;
}
}
答案 0 :(得分:0)
http://api.jquery.com/jQuery.get/必须提供帮助。
$.get('ajax/test.html', function(data) {
$('.result').html(data);
alert('Load was performed.');
});
可以从文件加载内容并将其放入div或类似的东西。
if(//page is captcha)
{
$.get('captcha.html', function(data) {
$('.captchaDiv').html(data);
});
}
这可以解决您的问题。