我在不属于我的域名上使用了javascript。这会将CORS请求发送到我服务器上的php文件。 php文件在处理数据之前设置标题“Access-Control-Allow-Origin:*”。
我宁愿将所有这些请求直接发送到SQS队列,而不是处理数据。我将js中的PHP文件链接替换为队列的直接URL。我设置队列权限以允许来自每个人的消息。
使用chrome时,一切正常。使用firefox时,会抛出以下错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://sqs.us-east-1.amazonaws.com/ ... . (Reason: CORS header 'Access-Control-Allow-Origin' does not match '*').
我可以为SQS队列设置标头响应吗?我没有在文档中找到任何内容或其他任何人这样做,但似乎我可以将SQS队列公开访问。
修改
以下是对SQS的调用:
var urlString = 'ver='+version;
var url = 'https://sqs.us-east-1.amazonaws.com/####/Sqs_Queue?Action=SendMessage&MessageBody='+encodeURIComponent(urlString);
var method = 'GET';
if (navigator.sendBeacon) {
navigator.sendBeacon(url, null);
}
else{
var xhr = new XMLHttpRequest();
if("withCredentials" in xhr) {
xhr.open(method, url, true);
}
else if (typeof XDomainRequest != "undefined"){
xhr = new XDomainRequest();
xhr.open(method, url);
}
else {
// CORS not supported.
xhr = null;
}
if (!xhr){
return;
}
xhr.send();
}