我使用jQuery ajax将http://www.opencaptcha.com/validate.php的验证码验证结果作为 1 ,
我发现我无法从ajax调用中获得结果,即使我将返回dataType设置为text
为 2
但是,如果我在浏览器中输入查询链接,我会将消息传递/失败为 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个浏览器来源
答案 0 :(得分: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'
});
另见this answer。
虽然看起来Opencaptcha不支持带jsonp的ajax。您必须在服务器端执行此检查。您可以执行的操作是向您的自己的服务器发送ajax请求(这次不需要jsonp),您可以在其中处理剩下的工作。