Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^3: Perl json parser and JSONP issue

by tobyink (Abbot)
on Jun 15, 2012 at 14:39 UTC ( #976439=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Perl json parser and JSONP issue
in thread Perl json parser and JSONP issue

"You can clearly see that I am passing a JSON file to a callback function"

Yes - that's entirely the problem. Your function expects to be get JSONP, and it's being given JSON. As I said: JSON and JSONP are different file formats.

You script is trying to get some JSONP from http://localhost/dat.json?callback=dbg but it's being given JSON. JSON and JSONP are different file formats.

Here's an example JSON file:

{ "name": "Joe Bloggs" }

Here's an example JSONP file:

process({ "name": "Joe Bloggs" });

As you can see, they look a little bit different. That's because JSON and JSONP are different file formats.

Also, make sure you're sending the correct HTTP headers.

  • For JSON, you want Content-Type: application/json.
  • For JSONP, you want Content-Type: application/ecmascript or Content-Type: application/javascript or Content-Type: text/javascript.

Note the difference: that's because JSON and JSONP are different file formats.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'


Comment on Re^3: Perl json parser and JSONP issue
Select or Download Code
Re^4: Perl json parser and JSONP issue
by heatblazer (Scribe) on Jun 15, 2012 at 15:12 UTC

    Well you are right... it`s kind of confusing... So if I am right, every time I create and record a JSON, I have to convert it to JSONP with wrapping it with the function before calling it back...

      Typically you'd configure your web server (or some other piece of middleware) to convert your JSON to JSONP on the fly. I'm surprised there isn't an Apache mod_jsonp that I can point you towards.

      perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

        Thank you. Your help is most appreciated. It was enough :) I`ve understand it. However it`s kind of confusing to me that JSONP stuff... By the way... can`t I just have a js file with a plain

        var Obj = { foo: function() {return me;}, data: "str", id: 0x8888 };

        can`t tell what`s the big fuss of JSON.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://976439]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (10)
As of 2014-08-29 22:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (289 votes), past polls