Jeremy23
Jeremy23

Reputation: 157

Jquery file uploader blueimp, Unexpected Token/Character

First of all let me tell you that I've already searched for some answers, and while it helped me out a bit, my main problems remain unresolved.

I used the file uploader (Version 9.8.0) @ http://blueimp.github.io/jQuery-File-Upload/

(1st problem)
Everything seems to work fine until I start uploading. After it finishes uploading, it says the following error for each image (instead of the "upload successful" message).

On Google Chrome it says: "SyntaxError: Unexpected token <"
on Mozilla FireF. it says: "SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data"

I searched some solutions but I can't figure out how to apply these solutions. And btw, it adds the image, despite the error.

Upvotes: 12

Views: 10684

Answers (9)

Paul TSL
Paul TSL

Reputation: 61

Here is the best answer, I had the same problem but following these steps, I could see the error easily.

1- Open debugger: F12

2- Go to network tab

3- Do the upload

4- You should see the request that was sent in the Network tab

5- Click on that error request

6- That will open a new window with a tab for the response from the server. This response will most likely be some kind of exception message.

Thanks StephanC

Upvotes: 0

Carl Powell III
Carl Powell III

Reputation: 21

This happened to me as well. I'm using PHP on a Linux server. I found there were actually backslashes "\" in the code in 4 or 5 places and they were causing the errors. Do this:

  1. Open your copy of /server/php/UploadHandler.php in an editor
  2. Do a search for the backslash: \
  3. Note each location of the backslash.
  4. If it is after the word "new" and before a call to a handler you can remove the backslash.

Check on lines 308, 790, 814, 816, 819, 822, 825, 828, 831, 836, 842, 895, 915, 973, 981 and 1058. All the calls to Imagick(); seem to have one in front of them.

I deleted all those backslashes and was not required to turn off error reporting.

Example:

Find code:

$file = new \stdClass();

Replace with:

$file = new stdClass();

Upvotes: 0

MatMut
MatMut

Reputation: 1

I had this problem in php 5.6 but not in php 5.3. I "solved" this problem by editing the error reporting level in upload.php file :

//error_reporting(E_ALL | E_STRICT); error_reporting(E_STRICT);

Upvotes: -1

ptCoder
ptCoder

Reputation: 2247

I solved this problem by editing url in main.js file with index.php at finally, like this:

// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload({
    // Uncomment the following to send cross-domain cookies:
    //xhrFields: {withCredentials: true},
    url: 'imagegallery/server/php/index.php'
});

Upvotes: 1

StephanC
StephanC

Reputation: 294

The method you are calling is throwing an error page with html (starting with < and cannot be parsed in JSON), if you look at the network tab in your browser.

For example in Google Chrome:

  1. Open debugger: F12
  2. Go to network tab
  3. Do the upload
  4. You should see the request that was sent in the Network tab
  5. Click on that error request
  6. That will open a new window with a tab for the response from the server. This response will most likely be some kind of exception message.

I had a similar problem on ASP.Net MVC with a different uploader, when one of the parameters was sent as null and it wasn't nullable on the controller.

Upvotes: 11

Noah Freitas
Noah Freitas

Reputation: 17430

Most likely you're trying to JSON.parse a server provided error message or other non-JSON response, and this is probably HTML, given the first character it choked on.

I'd open the console, get the page to produce the error, find the request in the Network tab of the dev tools, and check the response tab of the upload request(s) to see what is actually being returned.

Hopefully seeing the response will lead you to the solution (like fixing an error message) or a more specific question that can be asked.

Upvotes: 1

Codebender
Codebender

Reputation: 14461

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data check out this SO and see if your problem is related.
Basically, it could mean that the Success Message returned doesn't have proper HTML markup and hence the browser is not able to display them.

Upvotes: 1

Lau
Lau

Reputation: 282

It is because of the post_max_size and upload_max_filesize are too small and since it uses a blob to send the file data it generates this error. I've increased them in my php.ini and now works like a charm

Upvotes: 0

edmundpie
edmundpie

Reputation: 1201

This happened to me once. Maybe it is the folder permission. I set the server/php/files permission to read and write and it works.

Upvotes: 0

Related Questions