我的代码是
String url = "http: gd.geobytes.com/gd?after=-1&variables=GeobytesCountry,GeobytesCity";
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL
.encode(url));
try {
Request request = builder.sendRequest(null, new RequestCallback() {
public void onError(Request request, Throwable exception) {
Couldn't connect to server (could be timeout, SOP
violation, etc.)
}
public void onResponseReceived(Request request,
Response response) {
System.out.println(response.getText() + "Response");
if (200 == response.getStatusCode()) {
Window.alert(response.getText());
} else {
Window.alert(response.getText());
}
}
});
} catch (RequestException e) {
e.printStackTrace();
}
我收到以下错误 com.google.gwt.http.client.RequestPermissionException:网址http://gd.geobytes.com/gd?after=-1&variables=GeobytesCountry,GeobytesCity无效或违反同源安全限制 在com.google.gwt.http.client.RequestBuilder.doSend(RequestBuilder.java:378) 在com.google.gwt.http.client.RequestBuilder.sendRequest(RequestBuilder.java:254) at com.ip.client.IpAddressTest.onModuleLoad(IpAddressTest.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 在com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:369) 在com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:185) 在com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:380) 在com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222) 在java.lang.Thread.run(Thread.java:619) 引起:com.google.gwt.http.client.RequestException:(NS_ERROR_DOM_BAD_URI):访问受限制的URI被拒绝
答案 0 :(得分:1)
我们将GWT用于由Coldfusion服务器提供服务的UI,并在托管模式下开始看到此错误。
在IE中的可信站点区域中将安全级别更改为中低,为我修复了它。
答案 1 :(得分:0)
“同源策略”是浏览器为用户的安全性而实现的。如果从一个网站加载javascrip代码,则该代码无法开始向其他网站发送请求。它只能将请求发送到代码来自的相同的站点。
GWT docs提供更多详细信息。
如果您控制向浏览器提供gwt javascript的服务器,您可以在该服务器上安装一些代码,以便向您发送请求到gd.geobytes.com。