使用AJAX调用worklight SQL适配器过程

问题描述 投票:1回答:2

有人可以提供一个示例,说明如何使用AJAX调用在worklight中从SQL适配器调用和接收响应?我正在使用Worklight 6.0

我在应用程序一级具有安全性。我需要调用不需要身份验证的过程(例如:注册帐户),因此需要使用AJAX调用适配器

这是我的适配器:

var invocationData = {
                    adapter : 'UserInfo',
                    procedure : 'addUserInfo',
                    parameters : [ customerData.firstName,
                            customerData.lastName, customerData.email,
                            customerData.province, customerData.zipPostal,
                            customerData.phoneNumber, customerData.streetName,
                            customerData.streetNumber, customerData.country,
                            customerData.city ]
                };
                WL.Client.invokeProcedure(invocationData, {
                    onSuccess : insertUserSuccess,
                    onFailure : insertUserFailure
                });
ajax ibm-mobilefirst worklight-adapters
2个回答
2
投票

我的理解是,您只想从某些客户端使用Ajax调用Adapter过程。

与其他问题相同吗?

Calling Worklight adapter from external app

您可以在此处查看HTTP API的详细信息

http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.0.0/com.ibm.worklight.help.doc/admin/r_http_interface_of_the_prod_server.html?lang=en

更新:还要注意,如果您配置了任何安全测试,而不是“ wl_unprotected”(您的适配器是100%公开的,请小心!),您可能需要额外的步骤来处理身份验证。

[如果您具有默认适配器,但没有任何安全测试集,则您可能会在第一个请求中收到未经授权的401,并且在401的正文中可能会找到一个WL-Instance-ID属性,必须将其与一个新的请求以授权使用它。

更新2:Worklight / MobileFirst Platform没有启用CORS(因此,您不能使用外部网页上的ajax“自然”调用适配器)。通过使用网关(可能是IHS)将标头“ Access-Control-Allow-Origin”添加到所有适配器响应中,可以解决该问题。请注意,您正在处理安全事务,因此请确保您知道自己在做什么。


1
投票

Worklight(6.3及以下)适配器只能与Worklight Server一起使用。如果计划使用Worklight适配器,则需要使用Worklight框架提供的API-问题中提到的代码。

您仍然可以使用常规的AJAX请求-但那些/不会/不能被发送到Worklight适配器或通过Worklight适配器发送的请求。

WLJQ.ajax( "some-URL" )
.done(function (data) {
    console.log(data);
});

如果目的地确实需要通过Worklight Server,并且它不受任何领域的保护,那又是什么问题呢?发送请求。

也许您不应该在环境级别上保护应用程序,而应该在过程级别上保护(在适配器XML中对适配器过程而不是在application-descriptor.xml中对安全性设置安全测试。

也许您需要更好地解释您的特定情况...

© www.soinside.com 2019 - 2024. All rights reserved.