从javascript调用WSO2 ESB服务
我有一个很大的问题 WSO2 ESB 我通过wso2esbver实现了一个非常简单的web服务。4.8.1, 调用TestProxy时启用了安全性(并使用默认配置) 关于安全)。 如果我通过chrome web浏览器使用地址调用web服务,则一切正常: -首先问我用户名和密码; -然后web服务在web页面中返回我的输出 (在我的例子中是json格式的输出) 但是,我在调用web服务时遇到了一个大问题 来自javascript(例如部署在tomcat app.server中) 我使用以下代码(用户名和密码(右)为admin):从javascript调用WSO2 ESB服务,javascript,wso2,esb,Javascript,Wso2,Esb,我有一个很大的问题 WSO2 ESB 我通过wso2esbver实现了一个非常简单的web服务。4.8.1, 调用TestProxy时启用了安全性(并使用默认配置) 关于安全)。 如果我通过chrome web浏览器使用地址调用web服务,则一切正常: -首先问我用户名和密码; -然后web服务在web页面中返回我的输出 (在我的例子中是json格式的输出) 但是,我在调用web服务时遇到了一个大问题 来自javascript(例如部署在tomcat app.server中) 我使用以下代码(用
函数callDSS(){
$.ajax({
,
url:“https://10.20.105.145:8244/services/TestProxy/test_query/test_oper_query",
数据类型:“json”,
键入:“获取”,
标题:{
“访问控制允许来源”:“*”,
“访问控制允许凭据”:“true”,
“访问控制允许方法”:“获取、放置、发布、删除、选项”,
“访问控制允许标头”:“内容类型、内容范围、内容处置、内容描述”,
“授权”:“基本”+btoa(“管理员:管理员”)
},
//async:false,
错误:功能(jq、状态、消息){
console.info('发生jQuery错误。状态:'+Status+'-消息:'+Message+JSON.stringify(jq));
},
成功:函数(){
警惕(“成功!”);
}
});
};
它给了我一个错误:
加载资源失败:服务器响应状态为401(未授权)
test_invoke.html:1无法加载XMLHttpRequest。无效的HTTP状态代码401
你能帮我解决这个问题吗
如果你能给我一个正确的javascript代码
为了解决问题。
多谢各位
关于如果要从JavaScript访问服务,应该使用API或服务端点,而不是tryit代理,后者需要经过身份验证的用户 此外,您添加的那些头(访问控制-*)应该由服务器发送,而不是由ajax客户端发送 如果您面临与CORS相关的问题,请查看以下问题:
你好,菲利普,谢谢你的回答。问题是,我们被迫从web服务获得json格式。只有使用WSO2 DSS,我们(从web服务)才有xml格式。此外:为了尊重我们的安全,身份验证对我们来说是强制性的。Fabrizio,你能提供关于你的设置的更多详细信息吗?您是否有DSS服务器和ESB?DSS或ESB的安全约束应用在哪里?
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
function callDSS() {
$.ajax({
,
url: "https://10.20.105.145:8244/services/TestProxy/test_query/test_oper_query",
dataType:"json",
type: "GET",
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": "true",
"Access-Control-Allow-Methods": "GET, PUT, POST, DELETE, OPTIONS",
"Access-Control-Allow-Headers": "Content-Type, Content-Range, Content-Disposition, Content-Description",
"Authorization": "Basic " + btoa("admin:admin")
},
//async: false,
error: function (jq, status, message) {
console.info('A jQuery error has occurred. Status: ' + status + ' - Message: ' + message+JSON.stringify(jq));
},
success: function() {
alert('Success!');
}
});
};
</script>
</head>
<body onload="callDSS()">
</body>
</html>