0

ajax 请求 dataType 必须以 xml 格式发送,因为 API 只有 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);
    }   

});
4

3 回答 3

1

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

于 2013-05-29T23:47:28.983 回答
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)

            });     
        }
于 2013-05-29T23:41:50.027 回答
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);
    }
});
于 2013-05-29T23:42:21.900 回答