2个简单的问题:
所有http请求是否通过http适配器首先通过worklight服务器?
如果是这样,那么它是否意味着即使是对公共网站的http适配器请求说,对雅虎网站的股票价格请求也会先通过worklight服务器然后再到雅虎网站旁边?如果是这样,那么如何在不通过worklight服务器的情况下发出http请求?我只是想直接进入没有“中间”服务器(即工作服务器)的雅虎网站
答案 0 :(得分:18)
1)通过http适配器做的所有http请求都通过 worklight服务器首先?
是。 Worklight Adapters通过使用Mozilla Rhino在Worklight Server上执行JavaScript来工作。您可以在IBM Worklight Getting Started Modules中阅读有关适配器的更多信息。请查看Modules 5 and 6以获取适配器特定的详细信息。您还可以尝试下一个代码示例。 API文档位于IBM InfoCenter。还有一个Developer Works article讨论了您可能会发现有用的适配器。
2)如果是这样,那么它甚至意味着对公共网络的http适配器请求 网站说,向雅虎网站申请股票价格的请求也将通过 worklight服务器首先然后在雅虎网站旁边?
是
我只是想直接去雅虎网站而不是 “中间”服务器(即工作服务器)
IBM Worklight附带jQuery,您可以使用ajax method。这是一个例子:
WLJQ.ajax( "http://finance.yahoo.com/d/quotes.csv?s=DOW+MSFT+AAPL+GOOG&f=snl1" )
.done(function (data) {
console.log(data);
});
请注意,WLJQ是Worklight发布的jQuery版本的命名空间。您可以执行以下操作jQuery
或$
:var $ = WLJQ;
或var jQuery = WLJQ;
。
你应该得到这样的东西:
"DOW","Dow Chemical Comp",30.89
"MSFT","Microsoft Corpora",27.37
"AAPL","Apple Inc.",448.97
"GOOG","Google Inc.",790.13
答案 1 :(得分:0)
如果您在客户端使用适配器API,那么您的请求将通过Worklight服务器。您仍然可以从客户端发出AJAX请求并跳过服务器。基本上,您将以与Cordova相同的方式发出服务器请求,这意味着使用白名单来允许您的请求访问第三方服务器。
答案 2 :(得分:0)
当然,您可以直接访问它,而无需使用简单的jquery ajax调用调用任何适配器函数。
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
或
$.get(url, function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});
答案 3 :(得分:0)
通过http适配器做的所有http请求都通过工作灯进行 服务器第一?
绝对不是,这完全取决于你。如果您正在使用HTTP适配器,那么将从Worklight Server启动HTTP请求,它将为您提供响应。
如果是这样,那么它甚至意味着对公共网络的http适配器请求 网站说,向雅虎网站申请股票价格的请求也将通过 worklight服务器首先然后在雅虎网站旁边?如果是,那怎么样 在不通过worklight服务器的情况下创建http请求?一世 只想直接去雅虎网站,而没有"中间" 服务器(即工作服务器)
如果您使用的是HTTP适配器,那么它将根据第一个答案通过Worklight Server。
如果您不想要中间服务器,那么您可以使用传统方式执行HTTP请求,就像通过Javascript / Ajax层或本机(Android / iOS / Windows ..)
当涉及到Worklight用于确保从注册设备发起请求的安全性时,适配器非常有用 - 通过交换设备令牌等来完成身份验证。
答案 4 :(得分:-1)
我认为你错过了关于WL中适配器架构的重要观点。适配器存在于服务器中,因此根据定义,您使用它进行的任何请求都将“通过”服务器。但是,该信息不会通过您的WAS(或Tomcat)服务器。
您是否有理由不想使用适配器?我建议使用它,因为无论是从RESTful http调用还是数据库查询,它都可以更轻松地下载数据。
如果您确实想要绕过适配器,则存在跨域授权问题。我在这方面没有太多经验,但你可以使用像jQuery.ajax()这样的东西来解决它。