如何让Amazon签名4预签名URL与Ajax一起工作?

如何让Amazon签名4预签名URL与Ajax一起工作?,ajax,amazon-s3,pre-signed-url,Ajax,Amazon S3,Pre Signed Url,我可以生成一个工作的预签名URL来列出S3 bucket的部分内容 如果我将其粘贴到浏览器中或使用hurl.It,效果很好 但是,在jqueryajaxget调用中,签名失败 我在fiddler中查看了请求,它确实在请求中附加了一个参数,这可能就是回调 我在Hull中试过了,但也失败了。对于Amazon Signature 4来说,Ajax添加的额外参数似乎是一个阻碍 我会将它传递给我的服务器进行签名,但不幸的是Ajax是在事后完成的,所以很抱歉,不可能提前指定回调参数 奇怪的是,使用C#SDK

我可以生成一个工作的预签名URL来列出S3 bucket的部分内容

如果我将其粘贴到浏览器中或使用hurl.It,效果很好

但是,在jqueryajaxget调用中,签名失败

我在fiddler中查看了请求,它确实在请求中附加了一个参数,这可能就是回调

我在Hull中试过了,但也失败了。对于Amazon Signature 4来说,Ajax添加的额外参数似乎是一个阻碍

我会将它传递给我的服务器进行签名,但不幸的是Ajax是在事后完成的,所以很抱歉,不可能提前指定回调参数

奇怪的是,使用C#SDK生成一个预先指定的URL。在Ajax中,这个额外的参数不是问题。但不幸的是,SDK并没有提供我所知道的机制来生成预先签名的URL以列出内容。只是为了得到一个对象

因此,预先签名的URL不是问题。 就我所知,标题也是如此。 它似乎希望所有查询参数都与我所签名的匹配

我已经在这里呆了差不多两天了,我离这里很近

非常感谢经验丰富的s3/ajax用户提供的任何见解


谢谢

对于其他遭受这种耻辱的人,我的解决办法是这样的

我正在使用类型为“GET”的$.ajax()调用。 额外的参数肯定是问题所在

然后我想起jQuery中有一个$.get()函数

成功了

因此,$.ajax()似乎会添加额外的参数,Amazon签名4预签名URL将失败,即使签名有效

但是使用$.get()将成功

希望这能帮你省去很多悲伤