有人可以举例说明如何使用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
});
答案 0 :(得分:2)
我的理解是你只想从某个客户端使用Ajax调用Adapter程序。
和其他问题一样吗?
Calling Worklight adapter from external app
您可以在此处查看HTTP API的详细信息
更新: 另请注意,如果您配置了任何安全测试,则不同于" wl_unprotected" (你的适配器100%公开,小心!)你可能需要额外的步骤来处理身份验证。
如果您有一个默认适配器,没有任何安全测试设置,您可能会在第一次请求时收到未经授权的401,并且在401的正文中您可能会找到一个WL-Instance-ID属性,您必须一起发送有新的请求获得授权使用它。
更新2: Worklight / MobileFirst平台不支持CORS(因此您可以自然地使用来自外部网页的Ajax来调用适配器)。可以通过使用添加标题" Access-Control-Allow-Origin"的网关(可能是IHS)来解决这个问题。到所有适配器响应。请注意,您正在处理安全问题,因此请确保您知道自己在做什么。
答案 1 :(得分:1)
Worklight(6.3及更低版本)适配器只能与Worklight Server一起使用。 如果您打算使用Worklight适配器,则需要使用Worklight框架提供的API - 问题中提到的代码。
您仍然可以使用常规的AJAX请求 - 但那些赢得/不能是Worklight适配器发送的请求。
WLJQ.ajax( "some-URL" )
.done(function (data) {
console.log(data);
});
如果目标确实需要通过Worklight Server,并且它不受任何领域的保护,那么问题是什么呢?发送请求。
也许您不应该在环境级别保护应用程序,而是在程序级别保护应用程序(在适配器XML中设置适配器过程的安全性测试,而不是在application-descriptor.xml中的环境上)。
也许您需要更好地解释您的具体情况......