我正在尝试实现CORS,以便通过AJAX访问不同域上的资源。我在客户端使用PrototypeJS,在服务器端使用PHP。
在客户端,我正在做这样的事情:
new Ajax.Request(url, {
method: 'get',
onSuccess: function(transport){
var json = transport.responseText.evalJSON();
alert(json)
},
onFailure: function(transport) {
}
});
在服务器端,我用这个开始我的PHP脚本以允许CORS:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, X-Requested-With, X-Prototype-Version, X-JSON');
现在,大多数情况下,完美无缺。但是,有时我会看到奇怪的行为,而且我的一些用户遇到了问题。其中包括:
我让Chrome和Firefox的用户报告没有问题,而其他报告请求总是失败。我不知道为什么。
我在这里做错了吗?什么是最佳实践'做这样的事情?