Side navigation
#13412 closed bug (duplicate)
Opened February 07, 2013 08:32PM UTC
Closed September 24, 2013 01:20PM UTC
parseJSON does not handle undefined in 1.9.1
Reported by: | nick.randal@realprosystems.com | Owned by: | |
---|---|---|---|
Priority: | undecided | Milestone: | None |
Component: | ajax | Version: | 1.9.1 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
parseJSON has been clearly changed from 1.8.3 to 1.9.1. I have verified that 1.8.3 still handles undefined and returns null which is aligned with the documentation. The new version throws "Uncaught SyntaxError: Unexpected token u"
Attachments (0)
Change History (12)
Changed February 07, 2013 08:44PM UTC by comment:1
resolution: | → notabug |
---|---|
status: | new → closed |
Changed February 07, 2013 08:46PM UTC by comment:2
BTW, the jQuery Migrate plugin identifies this. Please use the jQuery Migrate plugin. If you'd like you can submit a pull request to clarify the docs.
Changed February 07, 2013 10:16PM UTC by comment:3
I believe this is a poor decision, this is a case where purism creates an unnecessary burden. Plugins and javascript galore have relied on what is a documented behavior and this was not a bad thing. The validation check was in one centralized place. Now every bit of code by everyone else must do the check themselves.
I don't believe that the cost is worth it.
Changed February 17, 2013 07:24PM UTC by comment:4
just saying
if (!form.valid()) {
//alert("not valid");
return false;
}
will now fail with "Uncaught SyntaxError: Unexpected token u"
what is the correct way of writing the above then? as far as i
knew that was correct.... now
jquery validate 1.11.0
needs to be updated...or is this part of
jquery.validate.unobtrusive.js
Changed February 18, 2013 01:07AM UTC by comment:5
Both of those are plugins, you'd need to ask the plugin author. The jQuery Migrate 1.1.1 plugin should allow the code to work as-is.
Changed February 22, 2013 11:32AM UTC by comment:6
Microsoft should not be writing plugins?? Kidding, they need to fix them though
Changed April 25, 2013 04:17PM UTC by comment:7
I also disagree with the decision to close this. I don't understand why it can't just do the 1.8.3 behavior.
Anonymous said it best: "I believe this is a poor decision, this is a case where purism creates an unnecessary burden." +1
Changed April 25, 2013 05:42PM UTC by comment:8
Please use the jQuery Migrate plugin until any dependent code is fixed, that's why we wrote it. Remediations in your own code should be only a line or two.
Changed May 03, 2013 11:02AM UTC by comment:9
+1 for using the old behaviour, this is an unnecessary burden on me as a plugin user - especially since the plugin I have a problem with is not open source (nice one Microsoft). I also don't see why the old behaviour is problematic?
Changed May 09, 2013 03:17PM UTC by comment:10
Although I feel similar to most here in that the parseJSON method should probably do some simple checking on the input before attempting to parse the JSON, this is equally an issue caused by Microsoft haphazardly tossing whatever they want into the parser and expecting gold.
I've submitted a bug report to Microsoft for this issue; you can see it at: https://connect.microsoft.com/VisualStudio/feedback/details/786650/jquery-validate-unobtrusive-js-broken-for-jquery-1-9-and-above
Maybe they will get around to fixing it in my lifetime...
Changed September 24, 2013 01:18PM UTC by comment:11
resolution: | notabug |
---|---|
status: | closed → reopened |
Changed September 24, 2013 01:20PM UTC by comment:12
component: | unfiled → ajax |
---|---|
resolution: | → duplicate |
status: | reopened → closed |
Duplicate of #13169.
JSON.parse(undefined)
*should* be an error since it is invalid JSON. The request for docs fix is here:https://github.com/jquery/api.jquery.com/issues/243