我有一个非常大的问题 WSO2 ESB。
我通过 WSO2 ESB ver实现了一个非常简单的Web服务。 4.8.1 下, 称为TestProxy,具有安全性(并使用默认配置) 关于安全)。 如果我通过Chrome网络浏览器调用地址为https://10.20.105.145:8244/services/TestProxy/test_query/test_oper_query的网络服务就可以了: - 第一个chrome问我用户名和密码; - 然后Web服务在网页中返回输出 (在我的例子中是json格式的输出)。
但是,当我调用Web服务时,我遇到了很大问题 来自javascript(例如部署在tomcat app。服务器中)。
我使用以下代码(用户名和密码(右)是admin admin):
<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>
它给了我错误: 无法加载资源:服务器响应状态为401(未授权) test_invoke.html:1 XMLHttpRequest无法加载https://10.20.105.145:8244/services/TestProxy/test_query/test_oper_query。无效的HTTP状态代码401
你能帮我解决这个问题吗?
如果你能给我一个正确的javascript代码 为了解决这个问题。
谢谢。
此致
答案 0 :(得分:0)
如果您想从JavaScript访问您的服务,您应该使用API或服务端点,而不是tryit代理,这需要经过身份验证的用户。
此外,您添加的那些标头(Access-Control- *)应该由服务器发送,而不是由ajax客户端发送。
如果您遇到与CORS相关的问题,请查看以下问题: Disable same origin policy in Chrome