Worklight 6.1 - 如何在适配器级别的请求标头中设置 x 转发的 IP 地址
Posted
技术标签:
【中文标题】Worklight 6.1 - 如何在适配器级别的请求标头中设置 x 转发的 IP 地址【英文标题】:Worklight 6.1 - How to set x-forwarded Ip address in request header at adapter level 【发布时间】:2014-06-16 12:13:36 【问题描述】:我正在使用 worklight 6.1,并且在请求时遇到了在适配器级别获取 x 转发 IP 地址的问题。所以现在我正在从客户端在适配器上发送客户端 IP 地址,如下所示
WL.Device.getNetworkInfo(function (networkInfo)
console.log(networkInfo.ipAddress);
ipadd = networkInfo.ipAddress;
reqParams["fldAppipAddress"] = networkInfo.ipAddress;
);
var invocationData =
adapter : "Login",
procedure : "Login",
parameters : [id,reqParams,ipadd],
compressResponse : true
;
和适配器方面我正在设置这样的标题
var request=
method:'POST',
returnedContentType:'xml',
path:serverPathIs,
headers:"User-Agent":"","App-Version":"1.6","X-Forwarded-For":Ipaddress,
cookies: "JSESSIONID":cookiestr,
parameters:jsonstr,
;
即使这样做后我也没有得到 x-forwarded ip,请提出正确的方法。
如何在http请求的头部设置x-forwarded-for
。
@安东
function GetAPICal(fldjsessionid,jsonstr,pass,uid,Ipaddress)
WL.Logger.error(jsonstr);
WL.Logger.info(jsonstr);
//newjson="fldPassword":enc(pass);
var output = ;
output = jsonConcat(jsonstr, newjson);
serverPathIs=getServletPathInfo();
if(fldjsessionid)
cookieSplit = fldjsessionid.split('!');
cookiestr = cookieSplit[0]+"!"+cookieSplit[1];
else
cookiestr="123";
var request=
method:'POST',
returnedContentType:'xml',
path:serverPathIs,
headers:"User-Agent":"","App-Version":"1.6","X-Forwarded-For":Ipaddress,
cookies: "JSESSIONID":cookiestr,
parameters:output,
;
var req = WL.Server.getClientRequest();
var response = WL.Server.invokeHttp(request);
return response;
【问题讨论】:
【参考方案1】:您到底想达到什么目的?从客户端->适配器请求中获取 x-forwarded-for 标头并在适配器->后端请求中使用它?
【讨论】:
无论我们从适配器向后端发出什么请求,我们都希望标头 x-forwarded ip 在那里。 你想要什么作为该标头的值? headers:X-Forwarded-For":Ipaddress 和我从客户端发送的这个 Ipaddress 所以我想要这个作为请求。 你能粘贴完整的登录功能代码吗?看起来您从客户端发送了两次 ipaddress,但我看不出有任何原因 您已经添加了 GetAPICal 函数并且您的客户端调用了 Login 函数。如果不查看拼图的所有部分,就不可能调试流程。你能添加所有相关的功能吗?一般来说-您的代码看起来正确,它应该将 X-Forwarded-For 标头添加到适配器->后端请求。你能详细说明问题到底是什么吗?没有添加标题?错误的标头值?以上是关于Worklight 6.1 - 如何在适配器级别的请求标头中设置 x 转发的 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.1 - 如何在适配器中发送帖子值?
IBM Worklight 6.1 - 成功调用适配器后如何调用 angular.js 的“ng-controller”方法?
IBM Worklight 6.1 - 如何在较慢的网络中处理超时?
Worklight 6.1+ 中的 cookiePolicy 适配器参数有啥作用?