• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 329
  • Last Modified:

AJAX (json) object returned ok on development server but not production server

Ok, this one has me well and truely stumped.

I have the following function that uses jquery to make ajax (json) requests:

function get_content_row(row_id) {
      var session_var = "";
      var rethtml = $.ajax({
            url: 'admin_json_functions.php',data: 'action=get_content_row&row_id=' + row_id,dataType: 'json',type: 'post',async: false,
            success: function (j) {
                  session_var = j;
      return session_var;

When this function is called from within Javascript as follows:

var content_row = get_content_row(row_id);

It works ok on my development server, but on my production server i get the following error:

Error: content_row.core is undefined

The JSON code that is called returns a json_encoded PHP array that is generated from a class and the code is as follows:

if ($_REQUEST['action'] == 'get_content_row' && isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {echo json_encode(get_content_row($_REQUEST['row_id']));exit;}

      function get_content_row($row_id) {

            $resp = array();

            $row = new content;

            $resp['core'] = $row->core;
            $resp['category'] = $row->category;
            $resp['author'] = $row->author;
            $resp['media'] = $row->media;
            $resp['taglines'] = $row->taglines;
            $resp['keywords'] = $row->keywords;
            //return arrayToJS($resp, 'content_row');
            return $resp;

As I have mentioned, in my dev enviroment (apache 2.2, mysql 5+, php 5+) this all works ok, but in my production server it throughs this error. I understand this may stem back to problems with how the variable may be passed between php and javascript (using ajax as the carrier) and have investigated the following options:

* eval() clientside funciton
* Use of Hash structures and passing through that way.

However this is sort of not my point, what i was hoping to get to the bottom of, is why it may be workign on my dev server, and not production, as if this can be modified to work many, many potential changes to code may be avoided.

Thanks in advance, Jake.
  • 2
1 Solution
Your production server may not be setting the header to application/x-json. set it in your php and try.
jacbmwAuthor Commented:
Do you mean in php.ini, or within the file that returns the json encoded data?
jacbmwAuthor Commented:
fixed guys, was using version 5.1 of php on prod server, json_encode wasnt a valid function on this version. Installed fix to server and working!
Michel PlungjanIT ExpertCommented:
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now