我的目标是在整个WSSE protocole中连接到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遥远时的要求:
您可以看到元素' 授权'和' X-WSSE '在第一个请求中出现,但在第二个请求中出现。
如何更改我的请求以使用远程服务器添加这两个元素?这是一个跨域问题吗?我试图在网上找到解决方案,但我找不到任何有效的方法。
答案 0 :(得分:0)
通过查看远程api链接的截图,您将获得" 405方法不允许错误"用你的ajax电话。您需要将dataType设置为JSONP而不是JSON,并在ajax方法中将crossDomain设置为true
$。ajax({type:' GET',dataType:" jsonp ", crossDomain:true ,. ..}}