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.