AWS SQS允许跨源访问

时间:2016-10-29 06:35:34

标签: cors cross-domain amazon-sqs

我在不属于我的域名上使用了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();
    }

0 个答案:

没有答案