Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
93
rated 0 times [  95] [ 2]  / answers: 1 / hits: 5426  / 9 Years ago, sat, february 14, 2015, 12:00:00

I am trying to learn jQuery AJAX, and keep getting the same error when trying to read a JSON file. Here is the javascript code:



$(function (){

var $orders = $('#orders');

$.ajax({
type: 'GET',
url: '/api/orders',
success: function(orders) {
$.each(orders, function(i, order) {
$orders.append('<li>my order</li>');
});
}


});
});


Here is the JSON code:



order:[
{id:1, name:Ben, drink:Americano w/ Creme},
{id:2, name:Ben2, drink:Americano w/ Creme2},
{id:3, name:Ben3, drink:Americano w/ Creme3}
]


I keep getting this error:



Uncaught TypeError: Cannot use 'in' operator to search for '191' in order:[
{id:1, name:Ben, drink:Americano w/ Creme},
{id:2, name:Ben2, drink:Americano w/ Creme2},
{id:3, name:Ben3, drink:Americano w/ Creme3}
]
jquery.js:584
isArraylikejquery.js:359
jQuery.extend.eachmain.js:10
$.ajax.successjquery.js:3143
jQuery.Callbacks.firejquery.js:3255
jQuery.Callbacks.self.fireWithjquery.js:9309
donejquery.js:9713
jQuery.ajaxTransport.send.callback


Does anyone have any idea why I keep getting this error? Thanks in advance for anyone's help.


More From » jquery

 Answers
5

Set dataType: 'json', because orders is JSON String not JS Object



 $.ajax({
dataType: 'json',
type: 'GET',
url: '/api/orders',
success: function(orders) {
$.each(orders, function(i, order) {
$orders.append('<li>my order</li>');
});
}
});



dataType: 'json' - Evaluates the response as JSON and returns a
JavaScript object.



[#39252] Friday, February 13, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
masonm

Total Points: 167
Total Questions: 87
Total Answers: 103

Location: Rwanda
Member since Wed, Jun 8, 2022
2 Years ago
masonm questions
;