/ / Captcha-Abfrage in einem jQuery.ajax-Skript verarbeiten - jquery, captcha

Captcha-Challenge in einem jQuery.ajax-Skript bearbeiten - jquery, captcha

Diese jQuery ruft ein Skript auf, das eine Seite abkratztund gibt ein json-Array an die jQuery zurück. In bestimmten Fällen führt das cURL-Skript jedoch zu einer Weiterleitung auf eine Captcha-Abfrageseite (siehe cURL im Klassenskript).

Wie kann ich das Captcha an den Benutzer weiterleiten, nachdem ich festgestellt habe, dass es sich bei der cURL-Seite um ein Captcha handelt (und nicht um die beabsichtigte Seite)?

Sollte ich nur das Captcha-Bild und die Aktionsparameter und ausgeblendeten Felder des Formulars extrahieren und das Formular neu erstellen, damit der Benutzer es senden kann?

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;
}
}

Antworten:

0 für die Antwort № 1

http://api.jquery.com/jQuery.get/ muss helfen.

$.get("ajax/test.html", function(data) {
$(".result").html(data);
alert("Load was performed.");
});

Kann Inhalte aus der Datei laden und in ein div oder ähnliches ablegen.

    if(//page is captcha)
{
$.get("captcha.html", function(data) {
$(".captchaDiv").html(data);
});
}

Dies kann Ihr Problem lösen.