views:

376

answers:

1

my post looks like this:

$.post('/ajaxvalidate/1', {"nid": nid}, function(data) {

I get the Uncaught SyntaxError: Unexpected token : error in google chrome.

I understand that I need to set a content type or something, from this question: http://stackoverflow.com/questions/3143698/uncaught-syntaxerror-unexpected-token

I don't understand how to do it.

http://api.jquery.com/jQuery.post/ has no examples. :( Thanks.

A: 

There are a number of examples on the jQuery.post API page that you linked to. They're about 1/3 of the way down the page. The last example on the page shows passing the 'json' content type in this method.

Here's a sample of doing a jQuery post -- and this works in jsFiddle without issue:

$(function() {
    $.post("/ajax_json_echo/", {html: "stuff"}, function(data) { alert(data.post_response.html);}, "json");
});

I'm passing my data to the service using 'json' as my data type.

So, are you sure there isn't a server side error happening. Try running your call through Fiddler or Firebug and see what you get back. Also, what type of data is your service expecting?

Update your post with what you see and I'll update my answer accordingly.

Hope this helps.

David Hoerster
Actually when I did json, it didn't work. But the error went away when I did html. Which makes a lot of sense, since data is not json, I had to do parseJSON to make it into a js object. But the problem is that I thought the server return was json... `return drupal_json($result);` This is the code for the server side return. I mean thank you, that showed me where to put the datatype and answers the question, I'm still a little confused but thanks.
JSNewbie