通过添加
来配置webservice-server以支持CORS
Header set Access-Control-Allow-Origin "*"
到apache虚拟主机conf,出现了一个新问题。
我使用jquery 1.5调用webservice:
$.ajax( {
type: "GET",
url: wsBaseUrl + "?action=xyz",
dataType: "json",
success: function(data){
wsCallback(data);
}
});
这个适用于服务器配置的跨域工作。但是,如果Web服务需要身份验证(生产系统就是这种情况),它就会再次中断。
对于身份验证,我添加了jquery ajax params
username: "userx",
password: "passx",
单独验证(不是跨域)有效。但只要它结合在一起(身份验证+跨域),它就结束了。 jQuery调用错误回调告诉我不允许该请求。我在Firefox中使用TamperData记录了请求,并且没有记录Web服务请求。然而,可能是那里没有记录所谓的预检(但如果是这样,为什么这取决于认证?)。
我在我的测试系统上尝试了所有组合,我很确定这是正确的结论
现在我真的被卡住了。我还可以做些什么来调试/解决这个问题?
答案 0 :(得分:1)
根据MDC,简单的GET
请求不是预先检查的,但是对于凭证请求(例如在您的示例中添加用户名,密码时),服务器必须以{{ 1}}以便FF 1.5+允许请求完成。
<强>更新强>