jQuery ajax甚至没有返回我将dataType设置为文本

时间:2013-05-12 09:01:06

标签: jquery ajax

我使用jQuery ajax将http://www.opencaptcha.com/validate.php的验证码验证结果作为 1

我发现我无法从ajax调用中获得结果,即使我将返回dataType设置为text 2

但是,如果我在浏览器中输入查询链接,我会将消息传递/失败为 3

我想问一下我的代码是否有任何错误,导致我无法使用Firebug consoleconsole.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控制台(无返回/返回空) Firebug console

3个浏览器来源 Browser sources

1 个答案:

答案 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),您可以在其中处理剩下的工作。