有人可以提供一个示例,说明如何使用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调用Adapter过程。
与其他问题相同吗?
Calling Worklight adapter from external app
您可以在此处查看HTTP API的详细信息
更新:还要注意,如果您配置了任何安全测试,而不是“ wl_unprotected”(您的适配器是100%公开的,请小心!),您可能需要额外的步骤来处理身份验证。
[如果您具有默认适配器,但没有任何安全测试集,则您可能会在第一个请求中收到未经授权的401,并且在401的正文中可能会找到一个WL-Instance-ID属性,必须将其与一个新的请求以授权使用它。
更新2:Worklight / MobileFirst Platform没有启用CORS(因此,您不能使用外部网页上的ajax“自然”调用适配器)。通过使用网关(可能是IHS)将标头“ Access-Control-Allow-Origin”添加到所有适配器响应中,可以解决该问题。请注意,您正在处理安全事务,因此请确保您知道自己在做什么。
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中对安全性设置安全测试。
也许您需要更好地解释您的特定情况...