Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript调用WSO2 ESB服务_Javascript_Wso2_Esb - Fatal编程技术网

从javascript调用WSO2 ESB服务

从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中) 我使用以下代码(用

我有一个很大的问题 WSO2 ESB

我通过wso2esbver实现了一个非常简单的web服务。4.8.1, 调用TestProxy时启用了安全性(并使用默认配置) 关于安全)。 如果我通过chrome web浏览器使用地址调用web服务,则一切正常: -首先问我用户名和密码; -然后web服务在web页面中返回我的输出 (在我的例子中是json格式的输出)

但是,我在调用web服务时遇到了一个大问题 来自javascript(例如部署在tomcat app.server中)

我使用以下代码(用户名和密码(右)为admin):


函数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>