Jquery AJAX Json响应数据未显示在浏览器中

时间:2013-05-29 23:31:50

标签: jquery ajax

由于API仅为xml,因此必须将ajax请求dataType作为xml发送。我使用插件脚本允许我绕过跨域问题。脚本见下文。
由于使用了插件,响应以json的形式返回。

我不知道为什么我无法显示个人响应数据。我设法显示的唯一内容是浏览器中的[object object]。

https://github.com/denka/jQuery-Plugins/blob/e5f123741ce6bc1be93e1db846a0e59cfe7e750c/cross-domain-ajax/jquery.xdomainajax.js

任何建议,以使这项工作将不胜感激。

$.ajax({
    url: 'http://api.smartpea.com/api/deal/?title=water&zip=90210, ///URL + User Input
    dataType: 'xml',
    type: 'get',
    beforeSend: function(){// Before Send, Add the Loader
    $("#loading").show();
    },
    complete: function(){// Once Request is complete, Remove the Loader
    $("#loading").hide();
    },
    success: function(data){
        var placement = document.getElementById('content');// location to where response is to be displayed to the user

        jQuery.parseJSON(data); parse the json response
        $.each(data, function(i) {

        placement.innerHTML = data[i].Title, data[i]. BrandName, data[i]. CurrentPrice, data[i].Category; //adding the response data to the content holder in the browser
        });     
    },
    error: function (xhr, ajaxOptions, thrownError){// Error Logger
    console.log(xhr, ajaxOptions, thrownError);
    }   

});

3 个答案:

答案 0 :(得分:1)

最明显的错误是第二行URL末尾缺少引号。您应该考虑在代码上使用JSHint

答案 1 :(得分:0)

您的成功功能可能就像这样

 success: function(data){
            jQuery.parseJSON(data); parse the json response
            $.each(data, function(i) {
            $('#content').html(data[i].Title+','+data[i]. BrandName+','+data[i]. CurrentPrice+','+data[i].Category)

            });     
        }

答案 2 :(得分:0)

$.ajax({
    url: 'http://api.smartpea.com/api/deal/?title=water&zip=90210',
    dataType: 'xml',
    type: 'get',
    beforeSend: function(){
    $("#loading").show();
    },
    complete: function(){
    $("#loading").hide();
    },
    success: function(data){
        var placement = document.getElementById('content');

        jQuery.parseJSON(data); parse the json response
        $.each(data, function(i) {
        placement.innerHTML = data[i].Title + " - " + data[i].BrandName + " - " + data[i].CurrentPrice + " - " + data[i].Category;
        });     
    },
    error: function (xhr, ajaxOptions, thrownError){
    console.log(xhr, ajaxOptions, thrownError);
    }
});