由于API仅为xml,因此必须将ajax请求dataType作为xml发送。我使用插件脚本允许我绕过跨域问题。脚本见下文。
由于使用了插件,响应以json的形式返回。
我不知道为什么我无法显示个人响应数据。我设法显示的唯一内容是浏览器中的[object object]。
任何建议,以使这项工作将不胜感激。
$.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);
}
});
答案 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);
}
});