我的目标是通过 WSSE 协议连接到 Symfony。当我尝试在本地连接到 Symfony 时,我有一个代码可以完美运行,但当我尝试连接到远程服务器上的同一个 Symfony 时却不行。(所有代码都一样,唯一改变的参数是 APILINK,我还设置了 .htaccess 以允许所有标头、请求和来源)
这是代码(javascript)
SimpleWSSEAuth.setup = function(username, password, salt, options) {
$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
jqXHR.setRequestHeader('Authorization', 'Authorization profile="UsernameToken"');
jqXHR.setRequestHeader('X-WSSE', SimpleWSSEAuth.BuildXWSSEHeader(username, password, salt));
});
};
SimpleUserAPI.WSSEAuthentification = function(password, data, success, error) {
SimpleWSSEAuth.setup(data.username, password, data.salt);
$.ajax({type: 'GET', dataType:"json", url: APILINK + "public/user", crossDomain: true}).done(success).fail(error);
};
如您所见,我在 ajax 请求之前调用了 SimpleWSSEAuth.setup。
当 APILINK 位于本地时,这是我的请求:
这是我在 APILINK 很远时的请求:
如您所见,元素“ Authorization ”和“ X-WSSE ”出现在第一个请求中,但没有出现在第二个请求中。
如何更改我的请求以将这两个元素添加到远程服务器?是跨域问题吗?我试图在网上找到解决方案,但我没有找到任何实际可行的方法。