Thanks everyone very nice tips and links.

Salk31& Cokol, you were right, I didn't need the "?", PHP page
wouldn't get the first parameter because of the "?"

VM, nice article and very smart hack... but it got me wondering
whether I will be able to maintain status on the server (using
sessions), especially after I read the other hack on how to use the
iframe name to store information.

I am lucky that I am controlling both the PHP pages and GWT
application, and both will be running from the same domain and server,
so I tried deploying both on the same server and they communicate
perfectly with no hassle using RequestBuilder. These issues are raised
when I try to run the GWT application through Eclipse.

I could be wrong, but it seems like no matter what technique you use
to send a cross server POST request, will give you a lot of pain
especially if you are interested in maintaining status...

Thanks a bunch.
Musab


On Jul 21, 4:08 pm, cokol <eplisc...@googlemail.com> wrote:
> hi!
>
> so if you really need to go for HTTP POST rather than get, then do so,
> remove the '?' from post body, these would be required for CGI doing
> GET but not in this case.
>
> you dont need to go for JSNI!! SOP cannot be workarounded on the
> client solely. You have to write simple gateway service which you call
> from the client (via RequestBuilder or XMLHttpRequest) and the data is
> posted via socket from the backend to the destination server.
>
> also refer to this 
> howto:http://code.google.com/intl/de-DE/webtoolkit/doc/latest/FAQ_Server.ht...
>
> greets,
>
> On 21 Jul., 13:55, malrawi <musab.alr...@gmail.com> wrote:
>
>
>
> > Hello Again,
>
> > For a second I thought the I managed to solve the SOP by following and
> > applying Google's tutorial found 
> > inhttp://code.google.com/webtoolkit/doc/latest/tutorial/Xsite.html
>
> > But I realized that I was doing a GET request and not a POST
> > request :/
> > So I guess I am back to square 1.
>
> > I read somewhere on the net that JNSI works only for GET request... Is
> > this correct?
> > Is there a way to make a POST request to a PHP page (port 80) without
> > violating the SOP? a link to an example or manual would be really
> > great.
>
> > Thanks again for the help and tips.
> > Musab
>
> > On Jul 20, 3:35 pm, malrawi <musab.alr...@gmail.com> wrote:
>
> > > Thanks Rob,
> > > The problem was because I wasn't encoding the URL, Now when I think
> > > about it, it is kind of strange because the logs show that  a request
> > > was sent but the only problem was with the $_POST, You would expect
> > > not being able to send the request if you don't encode the url and not
> > > send a request with no parameters.
>
> > > What was interesting too, the fact that getStatusCode() returned 0. I
> > > checked the group and it seems that it has something to do with SOP
> > > (correct me please if I am wrong). Would having the GWT application in
> > > the same folder as the PHP project solve this issue?
> > > Please, are there any other work arounds to the SOP issue?
>
> > > Thanks again
> > > Musab
>
> > > On Jul 19, 5:09 pm, RPB <robbol...@gmail.com> wrote:
>
> > > > Apologies if this is a double-post, the thread didn't seem to update
> > > > the first time.
>
> > > > I don't see anything in particular that is wrong with your code, but
> > > > the following works for me if you want to give it a try:
>
> > > > public void postPHPRequest(String url, String postData){
> > > >                 url = URL.encode(url);
> > > >                 RequestBuilder builder = new 
> > > > RequestBuilder(RequestBuilder.POST,
> > > > url);
>
> > > >             try {
> > > >               builder.setHeader("Content-Type", "application/x-www-form-
> > > > urlencoded");
> > > >               @SuppressWarnings("unused")
> > > >              Requestreq = builder.sendRequest(postData, new
> > > > RequestCallback() {
>
> > > >                 public void onError(Requestrequest, Throwable 
> > > > exception) {
> > > >                         fireErrorEvent("Failed to send therequest: " +
> > > > exception.getMessage());
> > > >                 }
>
> > > >                 public void onResponseReceived(Requestrequest, Response
> > > > response) {
> > > >                   String output = response.getText();
>
> > > >                 }
> > > >               });
> > > >             } catch (RequestException e) {
> > > >                 fireErrorEvent("Failed to send therequest: " + 
> > > > e.getMessage());
> > > >             }
> > > >         }
>
> > > > You can look at 'output' which should display any echos you have in
> > > > your PHP. Hopefully this will help you debug out what is happening.
> > > > If this doesn't work check that you are not violating the SOP (same
> > > > origin policy). There are other threads on this forum with more info
> > > > on this.
>
> > > > Good luck,
> > > > Rob
>
> > > > On Jul 18, 1:44 pm, malrawi <musab.alr...@gmail.com> wrote:
>
> > > > > Hi,
> > > > > I am really new to GWT, I tried searching the net for hours to get an
> > > > > answer to my problem with no luck. Here is what I am doing:
> > > > > I am creating a simple EntryPoint which shows some text fields, when
> > > > > the user clicks on a button I want to send aPOSTrequestto a php
> > > > > page. The PHP page "says" that myrequestparameters are not set.
> > > > > Right before I send therequestI display therequestdata and they
> > > > > look right. As the code shows, I am setting the content type, I am
> > > > > appending the parameters properly, I don't know what is wrong.
>
> > > > > I didn't want to use FormPanel because it seemed like I wouldn't be
> > > > > able to send arequestasynchronously (correct me if I am wrong, my
> > > > > conclusion was based on Javadoc's examples also some examples on the
> > > > > net)
>
> > > > > Here is the code:
>
> > > > > RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
> > > > > builder.setHeader("Content-type", "application/x-www-form-
> > > > > urlencoded");
> > > > > StringBuffer requestData = new StringBuffer();
>
> > > > > // parameters is a HashMap
> > > > > if (parameters != null ){
> > > > >         requestData.append("?");
> > > > >         Set<String> keys = parameters.keySet();
> > > > >         for (String key : keys ){
> > > > >                 requestData.append(URL.encode(key));
> > > > >                 requestData.append("=");
> > > > >                 requestData.append(URL.encode(parameters.get(key)));
> > > > >                 requestData.append("&");
> > > > >         }
>
> > > > > }
>
> > > > > try {
> > > > >         Window.alert(requestData.toString());
> > > > >         builder.sendRequest(requestData.toString(), handler);} catch 
> > > > > ( Exception e){
>
> > > > >         Window.alert(e.getMessage());
>
> > > > > }
>
> > > > > Please help.

-- 
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-tool...@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