1

我使用 jQuery ajax 从http://www.opencaptcha.com/validate.php获取验证码验证结果为1

我发现即使我将返回数据类型设置text2 ,我也无法从 ajax 调用中获得结果

但是,如果我在浏览器中输入查询链接,我会收到消息 pass/fail as 3

我想问一下我的代码是否有任何错误,以至于我无法Firebug console使用console.log(data)?

谢谢

1 代码

$.ajax({
    url: 'http://www.opencaptcha.com/validate.php',
    data: {
        img: timestamp, 
        ans: $('input[name=captcha_answer]').val()
    },
    success: function(data) {
        console.log(data)
    },
    dataType: 'text'
});

2 Firebug 控制台(无返回/返回空) 萤火虫控制台

3 浏览器来源 浏览器来源

4

1 回答 1

1

这是因为您正在发送跨域 ajax。使用数据类型jsonp(带填充的 json):

$.ajax({
url: 'http://www.opencaptcha.com/validate.php',
data: {
    img: timestamp, 
    ans: $('input[name=captcha_answer]').val()
},
success: function(data) {
    console.log(data)
},
dataType: 'jsonp'
});

另请参阅此答案

重要的:

不过,Opencaptcha似乎不支持带有 jsonp 的 ajax。您必须在服务器端执行此检查。您可以做的是向您自己的服务器发送一个 ajax 请求(这次不需要 jsonp),其余的由您处理。

于 2013-05-12T09:06:34.030 回答