gpt4 book ai didi

javascript - 从 javascript 调用 WSO2 ESB 服务

转载 作者:行者123 更新时间:2023-11-28 07:20:55 27 4
gpt4 key购买 nike

我有一个很大的问题WSO2 ESB 。

我通过WSO2 ESB 版本实现了一个非常简单的 Web 服务。 4.8.1,称为 TestProxy,安全性开启(并且使用默认配置关于安全)。如果我使用地址 https://10.20.105.145:8244/services/TestProxy/test_query/test_oper_query 调用网络服务通过 chrome 网络浏览器一切正常:- 首先 chrome 询问我用户名和密码;- 然后网络服务在网页中向我返回输出(在我的例子中是 json 格式的输出)。

但是,当我调用网络服务时遇到了大问题来自 javascript(例如部署在 tomcat 应用程序服务器中)。

我使用以下代码(用户名和密码(右侧)是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代码从而解决问题。

谢谢。

问候

最佳答案

如果您想从 JavaScript 访问服务,则应使用 API 或服务端点,而不是需要经过身份验证的用户的 tryit 代理。

此外,您添加的那些 header (Access-Control-*) 应该由服务器发送,而不是由 ajax 客户端发送。

如果您遇到 CORS 相关问题,请查看以下问题: Disable same origin policy in Chrome

关于javascript - 从 javascript 调用 WSO2 ESB 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30329863/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com