Chetan
Chetan

Reputation: 48011

Passing javascript code in JSON

I am making an AJAX call with jQuery to a PHP script that needs to return javascript code embedded in a JSON result for the jQuery code to execute. How do I go about passing javascript code in JSON?

Upvotes: 3

Views: 3569

Answers (2)

meouw
meouw

Reputation: 42140

The definition of JSON doesn't allow for javascript functions to be transported. It is meant to be language independent. If you use a JSON parser rather than eval(), it will fail if the JSON contains any functions.

Douglas Crockford, who I believe coined the term JSON has a JSON parser for javascript

Even JSONP doesn't return a function but a function call - myFuncIAskedFor({ returned JSON })
As others have mentioned, define your functions locally, it's the safest thing to do
Also use a JSON parser

Upvotes: 0

Max Shawabkeh
Max Shawabkeh

Reputation: 38623

Two ways:

  1. You'll have to pass it as a string and use eval() on the client side.
  2. You can use JSONP, and instead of doing a call, have your client side script insert a <script> with its src pointing to the server-side code that returns the new script.

In either case, make sure you secure it well - if the user can somehow insert their own code into your response, they could do some damage.

Upvotes: 4

Related Questions