将函数添加到success选项时,Ajax请求不起作用

时间:2015-10-24 18:03:56

标签: javascript jquery ajax

我无法获取ajax GET请求(或任何请求)来检索响应。我只是想在警报事件中返回响应:

<script>
    $(document).ready(function() {
        $('#test').click(function() {
            $.ajax ({
                type: 'Get',
                url:     'https://crm.zoho.com/crm/private/json/Potentials/searchRecords?authtoken=XXX&scope=crmapi&criteria=(((Potential Email:test@email.com))&selectColumns=Potentials(Potential Name)&fromIndex=1&toIndex=1',
                dataType: 'json',
                success: function(data) {
                    alert(data);
                }

            });
        });
    });
</script>

我可以通过取消成功选项中的功能并编辑代码来获得此和其他类似的帖子请求:

<script>
    $(document).ready(function() {
        $('#test').click(function() {
            $.ajax ({
                type: 'Get',
                url: 'https://crm.zoho.com/crm/private/json/Potentials/searchRecords?authtoken=XXXX&scope=crmapi&criteria=(((Potential Email:test@email.com))&selectColumns=Potentials(Potential Name)&fromIndex=1&toIndex=1',
                dataType: 'json',
                success: alert('success')

            });
        });
    });
</script>

这是为什么?更重要的是,如何检索响应数据并将其传输到警报消息?任何帮助表示赞赏!

**更新: 阅读前两个用户&#39;关于这个问题的回答,这就是我所拥有的:

<script>
    $(document).ready(function() {
        $('#test').click(function() {
            $.ajax ({
                type: 'GET',
                url: 'https://crm.zoho.com/crm/private/json/Potentials/searchRecords?authtoken=418431ea64141079860d96c85ee41916&scope=crmapi&criteria=(((Potential%20Email:test@email.com))&selectColumns=Potentials(Potential%20Name)&fromIndex=1&toIndex=1',
                dataType: 'json',
                success: function(data) {
                    alert(JSON.stringify(data));
                },
                error: function(data) {
                    alert(JSON.stringify(data));
                }

            });
        });
    });
</script>

我能够得到错误响应,所以我可以确认存在某种错误。我还想指出我是从不同的域(而不是crm.zoho.com)提出请求所以我应该使用jsonp吗?如果是这样,我将如何更改代码?

2 个答案:

答案 0 :(得分:1)

当你有

success: alert('success')

你没有成功的请求,你实际上是在AJAX方法的开头执行这个功能。 success参数需要指向函数的指针,当您使用alert('success')时,您正在执行函数而不是提供指向它的指针。

您需要尝试的第一件事是将类型更新为GET而不是Get

$.ajax ({
    type: 'GET',

答案 1 :(得分:0)

尝试使用.done()函数,如下所示:

<script>
$(document).ready(function() {
    $('#test').click(function() {
        $.ajax ({
            type: 'Get',
            url:     'yourUrl',
            dataType: 'json',
            }

        }).done(function(result) {alert(data);}) //try adding:
          .error(function(jqXHR, textStatus, errorThrown) {
                   console.log(textStatus, errorThrown);})
    });
});

错误功能还会在控制台中为您提供有关请求状态的一些信息。