Hello,
A call to $.ajax() with a null parameter value raise an exception
"object is null" in the $.each function, line #519.
The stack shows that the .each() function is called from buildParams()
function, line 5157.
Here is a small testcase to reproduce the behavior:
<!DOCTYPE html>
<html>
<head>
<title>Ajax with null param value</title>
<script type="text/javascript" src="http://code.jquery.com/
jquery-1.4rc1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#process').click(function() {
$.ajax({ url: location.href, data: {
param1: null }});
});
});
</script>
</head>
<body>
<input type="button" id="process" value="Process" />
</body>
</html>
This can be fixed by checking for obj null-ness in the buildParams
function, line #5177:
5174. }
5175. });
5176.
5177.--- } else if ( !traditional && typeof obj
=== "object" ) {
5177.+++ } else if ( !traditional && obj !==
null && typeof obj ===
"object" ) {
5178. // Serialize object item.
5179. jQuery.each( obj, function( k, v ) {
Since (typeof null === "object") in browsers I tested (ie6, ie8,
firefox3.5, safari4, chrome 4).
Don't know if this fix is correct though, just trying :)
Many thanks!
Nicolas
--
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en.