Whatever possessed you to send the "application/x-www-form-
urlencoded" as mime type?

JSON is nothing like form-encoded. That's like sending your HTML as
"image/jpeg" just for kicks. Don't do that.

JSON's mimetype is "application/json" (see [1] below). If you want to
be nice, you should actually set that in the header (as follows:
Content-type: application/json; encoding=UTF-8  - note that JSON is
defined to be UTF-8 encoded, so you're just clarifying there, you
can't pick your own encoding).

And, yes, of course, in PHP you would have to get the entire request
body, instead of letting PHP try to parse it as form data. Possibly
PHP is presuming that the data IS form encoded when there is no header
at all. Is file_get_contents("php://input"); really the only feasible
way to get the entire body in PHP?

Oh, PHP. Every single time someone posts a code snippet written in
PHP, my aesthetic sense blows its brains out in sheer despair. And
this one is up there, which is really saying something. I think its a
conspiracy by the zend folks to make the inner child of developers
worldwide die a little inside every time they come in contact with it.
Sadistic bastards.



On Jan 4, 6:52 am, Ian <ikra...@gmail.com> wrote:
> For those who might be facing a similar problem and others who might
> be interested in my previous question I have come up with an answer.
> First my disclaimer: the solution below may not be the proper one but
> it does work. Now on to the solution:
>
> On the GWT Client Side:
>
> JSONObject jObject = new JSONObject();
> jObject .put("propA", new JSONString("valA"));
> jObject .put(...
>
> RequestBuilder builder = new RequestBuilder(RequestBuilder.POST,
> YOUR_PHP_URL);
> builder.sendRequest(jObject.toString(), new YourReponseHandler());
>
> Note that there is no setHeader.
>
> On the PHP side:
>
> Get the raw data instead of $_POST
> $jsonReq = file_get_contents("php://input");
>
> Decode the json request
> $request = json_decode($jsonReq);
>
> Cheers,
> Ian
>
> On Jan 3, 10:09 pm, Ian <ikra...@gmail.com> wrote:
>
> > I am new to the Web application world; I am trying to encapsulate my
> > set of data in a JSONObject, convert to string, and send it  (async
> > POST) to a PHP page using GWT's RequestBuilder. GWT's tutorial
> > discusses the trip from the server back to the client and not the
> > other way around where I am unclear about.
>
> > Do I need to set the header? Currently I set it to:
> >  builder.setHeader("Content-Type", "application/x-www-form-
> > urlencoded");
>
> > However, this works fine as long as am sending
> > key1=value1&key2=values where I can retrieve variable via $_POST
> > ['key1'] or $_POST['key2']
>
> > But I am not sure how to send a JSON string where it can be retrieved
> > in a php page. I have tried sending myvar=MyJsonString but cannot
> > retrieve in my php page. How should $_POST reference the JSON object?
>
> > Any clarification would be much appreciated.
>
> > Thanks,
>
> > Ian
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to Google-Web-Toolkit@googlegroups.com
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to