我的GWT服务器端代码上的http代理
我有一个REST服务器作为后端,它提供了一组服务,还使用基本身份验证方法进行访问 现在我需要创建一个GWT前端,因此,我需要从GWT前端对REST后端执行http调用 经过一些研究,我发现HttpBuilder可以处理到后端的http请求,但在尝试执行跨站点请求时,这似乎是一个难题,而且它还附带了一些与Safari浏览器相关的限制 然后我找到了这篇文章,其中谈到了“在您自己的服务器上使用代理”,因此它看起来是我正在寻找的解决方案,但我没有找到更多信息或示例。它说我可以创建服务器端代码来从远程服务器(后端)下载数据,因此,我是否应该像服务器端代码上的apache客户端那样创建一个http客户端,并实现一组使用它向后端发出请求的服务,如何处理用户身份验证和会话?如果没有,请给我一盏灯 谢谢 实际上,如果我们可以在Servlet响应头中设置,您可以从GWT RequestBuilder发出跨站点请求 setHeader(“访问控制允许源代码”,”) 不需要。使用我的GWT服务器端代码上的http代理,gwt,Gwt,我有一个REST服务器作为后端,它提供了一组服务,还使用基本身份验证方法进行访问 现在我需要创建一个GWT前端,因此,我需要从GWT前端对REST后端执行http调用 经过一些研究,我发现HttpBuilder可以处理到后端的http请求,但在尝试执行跨站点请求时,这似乎是一个难题,而且它还附带了一些与Safari浏览器相关的限制 然后我找到了这篇文章,其中谈到了“在您自己的服务器上使用代理”,因此它看起来是我正在寻找的解决方案,但我没有找到更多信息或示例。它说我可以创建服务器端代码来从远程服务
RequestBuilder
RequestBuilder示例:
RequestBuilder=newrequestbuilder(RequestBuilder.GET,url);
试一试{
Request-Request=builder.sendRequest(null,new-RequestCallback()){
公共void onError(请求,可丢弃异常){
displayError(“无法检索JSON”);
}
接收到公共无效onResponseReceived(请求-请求,响应-响应){
if(200==response.getStatusCode()){
updateTable(asArrayOfStockData(response.getText());
}否则{
displayError(“无法检索JSON(“+response.getStatusText())
+ ")");
}
}
});
}捕获(请求异常e){
displayError(“无法检索JSON”);
}
实际上,如果我们可以在Servlet响应头中设置,您可以从GWT RequestBuilder发出跨站点请求
setHeader(“访问控制允许源代码”,”)
不需要。使用RequestBuilder
RequestBuilder示例:
RequestBuilder=newrequestbuilder(RequestBuilder.GET,url);
试一试{
Request-Request=builder.sendRequest(null,new-RequestCallback()){
公共void onError(请求,可丢弃异常){
displayError(“无法检索JSON”);
}
接收到公共无效onResponseReceived(请求-请求,响应-响应){
if(200==response.getStatusCode()){
updateTable(asArrayOfStockData(response.getText());
}否则{
displayError(“无法检索JSON(“+response.getStatusText())
+ ")");
}
}
});
}捕获(请求异常e){
displayError(“无法检索JSON”);
}
请注意,此标题是CORS的一部分,并非所有浏览器都支持CORS,只是相对现代的浏览器。有关此功能的详细信息,请参阅。请注意,此标题是CORS的一部分,并非所有浏览器都支持CORS,只是相对现代的浏览器。有关此功能的详细信息,请参阅。
it seem to be a pain when trying to perform cross-site requests,
should I create a http client like the apache client on server-side code, and implement
a set of services that use it to make request to the backend?