Bug Tracker

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#11762 closed bug (invalid)

iPad 5.1.1 UIWebView - JSON.stringify cannot serialize cyclic structures.

Reported by: bigred23z@… Owned by:
Priority: undecided Milestone: None
Component: unfiled Version: 1.7.1
Keywords: Cc:
Blocked by: Blocking:

Description

iPad iOS 5.1.1 (UIWebView)

jQuery - 1.7.1

jQuery Mobile - 1.1.0

Phonegap - 1.7.0

I'm attempting to load a JSON object via a $.ajax call and am getting a weird error. It works fine on the iPad and iPhone simulators, but when testing on a real device I receive the following error (courtesy of $(document).ajaxError).

2012-05-13 20:21:12.955 Modeling[555:707] [INFO] TypeError: JSON.stringify cannot serialize cyclic structures.
2012-05-13 20:21:12.958 Modeling[555:707] [INFO] {"readyState":0,"responseText":"","status":0,"statusText":"error"}
2012-05-13 20:21:12.959 Modeling[555:707] [INFO] {"url":"...","isLocal":true,"global":true,"type":"GET","contentType":"application/json; charset=utf-8","processData":true,"async":true,"accepts":{"xml":"application/xml, text/xml","html":"text/html","text":"text/plain","json":"application/json, text/javascript","*":"*/*","script":"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},"contents":{"xml":{},"html":{},"json":{},"script":{}},"responseFields":{"xml":"responseXML","text":"responseText"},"converters":{"text html":true},"flatOptions":{"context":true,"url":true},"jsonp":"callback","cache":false,"dataType":"json","dataTypes":["text","json"],"crossDomain":true,"hasContent":false}

The call I am using is:

$.ajax({
            cache: false,
            url: MyUrl,
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (cities, textStatus, jqXHR) {
            }
});

If it is truly an iOS issue, then I assume all devices running a Phonegap + jQuery + jQuery Mobile stack will fail on iOS 5.1.1.

Change History (5)

comment:1 Changed 7 years ago by Rick Waldron

Resolution: invalid
Status: newclosed

This neither a jQuery, iOS nor Phonegap issue. JSON.stringify cannot serialize objects that have cyclic structures or references as properties.

comment:2 Changed 7 years ago by bigred23z@…

I would like to see this ticket re-opened.

The example json file I am loading can be found at: http://api.geonames.org/countryInfoJSON?formatted=true&lang=it&country=DE&username=demo&style=full

There is no cycles or references, so the error received does not pertain to the source.

Setup One (Successful):

  • iPhone Simulator - iOS 5.1
  • Cordova 1.7.0
  • jQuery 1.7.1 (& 1.7.2)

Screenshot: http://i.imgur.com/MlFZ0.png

The source was retrieved using $.ajax successfully (response "success").

Setup One (Failure):

  • Physical iPad 2 - iOS 5.1.1
  • Cordova 1.7.0
  • jQuery 1.7.1 (& 1.7.2)

Screenshot: http://i.imgur.com/e516V.png

The url was NOT successfully processed. An error of "JSON.stringify cannot serialize cyclic structures." is given.

Source code (example cordova index.html): https://gist.github.com/2698397

If you need any further details please let me know.

comment:3 Changed 7 years ago by Rick Waldron

Please provide a complete reduced test case on jsFiddle to help us assess your ticket. Be sure to test against the "jQuery (edge)" version to ensure the issue still exists. To get you started, use this boilerplate: http://jsfiddle.net/FrKyN/ Open the link and click to "Fork" (in the top menu) to begin.

If this is a bug in jQuery, it will be reproducible without any of the other libraries or technologies present.

comment:4 Changed 7 years ago by anonymous

I have the same problem using Phonegap 1.7.0, jquery mobile 1.1.0, jquery 1.7.1

comment:5 Changed 7 years ago by bigred23z@…

Test case can be found at: http://jsfiddle.net/mSDYA/1/

It appears to work with Safari on the iPad 2 - iOS 5.1.1 (theoretically the same rendering engine as UIWebView) "without any of the other libraries or technologies present". I don't see how Phonegap could be modifying native JSON libraries.. Perhaps iOS broke something with the 5.1 -> 5.1.1 patch.

I've opened an issue with Cordova (Phonegap). Hopefully they will reply

https://issues.apache.org/jira/browse/CB-773.

Note: See TracTickets for help on using tickets.