我尝试应用程序中这个'结构':

1)我写了一个后端服务器在蟒蛇,这将产生json输出(运行在localhot:8094)

2)我已经写了一个非常简单的应用程序的应用程序,将使用RequestBuilder设置获得向python服务器(在发展模式的应用程序蚀插件,它是可以通过 http://127.0.0.1:8888/test.html)

代码是简单

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Test implements EntryPoint {
    /**
     * The message displayed to the user when the server cannot be reached or
     * returns an error.
     */

    private static final String SERVER_URL = "http://localhost:8094";
    private static final String SERVER_ERROR = "An error occurred while "
            + "attempting to contact the server. Please check your network "
            + "connection and try again.";

    /**
     * This is the entry point method.
     */
    public void onModuleLoad() {

        RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, SERVER_URL);
        try {
            requestBuilder.sendRequest(null, new Jazz10RequestCallback());
        } catch (RequestException e) {
            Window.alert("Failed to send the message: " 
                    + e.getMessage());
        }

    }

    class Jazz10RequestCallback implements RequestCallback{

        public void onError(Request request, Throwable exception) {
                // never reach here
        Window.alert("Failed to send the message: "
                    + exception.getMessage());

        }

        public void onResponseReceived(Request request, Response response) {
            // render output
            Window.alert(response.getText());

        }


    }
}

然而警报总是来自onResponseReceived和显示没什么(empty string我想)

我可以到达我python服务器好了,下载java,通过浏览器。但我看不到任何请求打击的服务器应用程序.

我们确保,"继承name='com.谷歌。应用程序.http。HTTP"是的gwt.xml 文件

问题是:

1)是相同的网站政策限制在在这里工作?我希望例外(因而失败的消息),但它并没有发生

2)如果它确实是同一个站点的政策问题,什么是最简单的方式来部署的应用程序的脚本python后台?日食应用程序的插件产生了一些伪在战争子目录。它是足够的复制这些文件的某些静态目录我的蟒蛇的后台?

有帮助吗?

解决方案

1)是的它是,虽然主是相同的,你想要访问一个不同港口-SOP不允许的。你可能得到JavaScript例外检查萤火虫的控制台上或者类似的东西。

2)按照 指南 在正式文档。你不需要一个Java服务器的-只是一个,可以为HTTP内容(例如,Apache是优良)。我没有经验Python作为后端,但我敢肯定有一个解决方案Python服务和HTTP。

当使用的-noserver标志,你的 外部服务器被使用的应用程序 主办方式浏览器来提供这两个 你的动态内容,并且所有静态的 内容(如应用程序的应用程序 主页上,其他HTML文件、图片, CSS,等等。)

动态的内容,在这种情况下,将Python脚本。

其他提示

是的,这将失败由于SOP。你什么HTTP响应代码?通常在这种情况下回来为0,而不是200(OK)。一个解决方案可能是使用JSONP的方法,我写了一点关于JSONP与GWT作为本文的第二部分:的 http://www.bristol-gtug.org/?p=76

这可能为时已晚。如果您没有访问使用相对路径和这样的本地资源,你是正确的,它受到SOP(同源策略)。通过-no服务器标志将不会是太大的帮助来解决这个问题。为了绕过这个问题,请阅读 HTTP: //code.google.com/p/google-web-toolkit-doc-1-5/wiki/FAQ_JSONFeedsFromOtherDomain 。一个更好的解决办法是使用com.google.gwt.jsonp.client.JsonpRequestBuilder,(记得要继承继承名=“com.google.gwt.jsonp.Jsonp” \),这是由GDATA API使用(“更好“在这个意义上,你不必自己编写)。希望这可以帮助。干杯〜

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top