]> source.dussan.org Git - gwtquery.git/commitdiff
Adding static getJSONP method to GQuery class
authorManolo Carrasco <manolo@apache.org>
Mon, 13 Feb 2012 12:56:58 +0000 (12:56 +0000)
committerManolo Carrasco <manolo@apache.org>
Mon, 13 Feb 2012 12:56:58 +0000 (12:56 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/client/GQuery.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/LazyEvents.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/ajax/Ajax.java

index c837f47f61a680bac2e3bf5ef17683625db4232b..03b50d65aa3eaa15668d7435bf0ab75e4cfab557 100644 (file)
@@ -542,6 +542,34 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
                        final Function onSuccess) {\r
                Ajax.getJSON(url, data, onSuccess);\r
        }\r
+       \r
+  /**\r
+   * Perform an ajax request to the server using scripts tags and\r
+   * parsing the json response. The request is not subject to the \r
+   * same origin policy restrictions.\r
+   * \r
+   * Server side should accept a parameter to specify the callback\r
+   * funcion name, and it must return a valid json object wrapped\r
+   * this callback function.\r
+   * \r
+   * Example:\r
+   <pre>\r
+    Client code:\r
+    getJSONP("http://server.exampe.com/getData.php",$$("myCallback:'?', otherParameter='whatever'"), \r
+      new Function(){ public void f() {\r
+        Properties p = getDataProperties();\r
+        alert(p.getStr("k1");\r
+    }});\r
+   \r
+    Server response:\r
+    myCallback({"k1":"v1", "k2":"v2"});\r
+   </pre>\r
+   * \r
+   */ \r
+  public static void getJSONP(String url, Properties data,\r
+      final Function onSuccess) {\r
+    Ajax.getJSONP(url, data, onSuccess);\r
+  }\r
   \r
   protected static DocumentStyleImpl getStyleImpl(){\r
     if (styleImpl == null){\r
index 2e8bac07ccb5d250a708cade2af9031439e676b7..7584f571dd78cc58701d1b68b09806c298528668 100644 (file)
@@ -17,6 +17,7 @@ package com.google.gwt.query.client.plugins;
 import com.google.gwt.dom.client.Element;
 import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.dom.client.Node;
+import com.google.gwt.event.dom.client.KeyCodes;
 import com.google.gwt.query.client.Function;
 import com.google.gwt.query.client.GQuery;
 import com.google.gwt.query.client.js.JsUtils;
index f280b52bbae1f279adf20434c418f86b27d441aa..0f991163da430538fc4ea62b69ac41ef205f37eb 100644 (file)
@@ -119,9 +119,8 @@ public class Ajax extends GQuery {
     
     final String dataType = settings.getDataType();
     if ("jsonp".equalsIgnoreCase(dataType)) {
-      Method httpMethod = resolveHttpMethod(settings);
       String data = resolveData(settings);
-      String url = resolveUrl(settings, httpMethod, data);
+      String url = resolveUrl(settings, RequestBuilder.GET, data);
       int timeout = settings.getTimeout();
       getJSONP(url, onSuccess, onError, timeout);
       return;
@@ -306,7 +305,7 @@ public class Ajax extends GQuery {
   }
   
   public static void getJSONP(String url, Function success, Function error, int timeout) {
-    if (!url.contains("=?")) {
+    if (!url.contains("=?") && !url.contains("callback=")) {
       url += (url.contains("?") ? "&" : "?") + "callback=?";
     }
     url += "&_=" + System.currentTimeMillis();