Worklight http适配器问题

时间:2013-02-26 20:03:29

标签: ibm-mobilefirst worklight-adapters

2个简单的问题:

  1. 所有http请求是否通过http适配器首先通过worklight服务器?

  2. 如果是这样,那么它是否意味着即使是对公共网站的http适配器请求说,对雅虎网站的股票价格请求也会先通过worklight服务器然后再到雅虎网站旁边?如果是这样,那么如何在不通过worklight服务器的情况下发出http请求?我只是想直接进入没有“中间”服务器(即工作服务器)的雅虎网站

5 个答案:

答案 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()这样的东西来解决它。