gpt4 book ai didi

python - GWT Request Builder 问题(同一站点策略问题?)

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:34 24 4
gpt4 key购买 nike

我正在这个“配置”中试用 GWT:

1) 我用 python 编写了一个服务器后端,它将产生 json 输出(在 localhot:8094 运行)

2) 我编写了一个非常简单的 GWT 应用程序,它将使用 RequestBuilder 将 GET 设置为 python 服务器(在 GWT eclipse 插件的开发模式下,可通过 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 并且什么都不显示(我想是空字符串)

我可以正常访问我的 python 服务器并通过浏览器下载 json。但是我看不到任何从 GWT 发送到服务器的请求。

我已确保“inherits name='com.google.gwt.http.HTTP”在 gwt.xml 文件中

问题是:

1) 是同一站点策略限制在这里起作用吗?我期待异常(因此失败消息),但它没有发生

2) 如果确实是同一站点策略问题,那么从 python 后端部署 GWT 脚本的最简单方法是什么? eclipse gwt 插件在 war 子目录中生成一些工件。将这些文件复制到我的 python 后端的某个静态目录是否足够?

最佳答案

1) 是的,虽然主机相同,但您正在尝试访问不同的端口 - SOP 不允许这样做。您可能遇到 JavaScript 异常 - 检查 Firebug 的控制台或类似的东西。

2) 关注 guide在官方文档中。您不需要 Java 服务器 - 只需一个可以提供 HTTP 内容的服务器(例如,Apache 就可以)。我没有使用 Python 作为后端的经验,但我确信有一个为 Python 和 HTTP 提供服务的解决方案。

When using the -noserver flag, your external server is used by the GWT Hosted Mode browser to serve up both your dynamic content, and all static content (such as the GWT application's host page, other HTML files, images, CSS, and so on.)

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

关于python - GWT Request Builder 问题(同一站点策略问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com