jquery - Why cant null be returned to a $.getJSON() function? -


given following controller method

public actionresult testjsonresult() {     return json(true, jsonrequestbehavior.allowget);     // return json(null, jsonrequestbehavior.allowget);     // return null; } 

and client side script

var url = '@url.action("testjsonresult", "test")'; $.getjson(url, function (result) {     if (result) {         console.log('returned result');     } else {         console.log('returned null'); // never hit     } }).fail(function (result) {     console.log('failed'); // hit return json(null); , return null;     // result status 200 ok }); 

then outputs 3 return value options are

return json(true, jsonrequestbehavior.allowget); // outputs "returned result" return json(null, jsonrequestbehavior.allowget); // outputs "failed" return null; // outputs "failed" 

acording specification

  1. values

    a json value must object, array, number, or string, or 1 of following 3 literal names: false null true

if json value can null, why else block never hit when return value null , failing of json() method or null value cannot represented json when returned getjson() method?

note, using $.ajax() without specifying datatype: hit else block when controller method return null; (i assume because return value interpreted other json).

note: using mvc-4 , jquery-1.9.1

because return json(null, jsonrequestbehavior.allowget) return empty string. , empty string not valid json string. $.getjson failed. can use javascript try json.parse("") throw error.


Comments

Popular posts from this blog

Payment information shows nothing in one page checkout page magento -

tcpdump - How to check if server received packet (acknowledged) -