如何让Amazon签名4预签名URL与Ajax一起工作?
我可以生成一个工作的预签名URL来列出S3 bucket的部分内容 如果我将其粘贴到浏览器中或使用hurl.It,效果很好 但是,在jqueryajaxget调用中,签名失败 我在fiddler中查看了请求,它确实在请求中附加了一个参数,这可能就是回调 我在Hull中试过了,但也失败了。对于Amazon Signature 4来说,Ajax添加的额外参数似乎是一个阻碍 我会将它传递给我的服务器进行签名,但不幸的是Ajax是在事后完成的,所以很抱歉,不可能提前指定回调参数 奇怪的是,使用C#SDK生成一个预先指定的URL。在Ajax中,这个额外的参数不是问题。但不幸的是,SDK并没有提供我所知道的机制来生成预先签名的URL以列出内容。只是为了得到一个对象 因此,预先签名的URL不是问题。 就我所知,标题也是如此。 它似乎希望所有查询参数都与我所签名的匹配 我已经在这里呆了差不多两天了,我离这里很近 非常感谢经验丰富的s3/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
谢谢 对于其他遭受这种耻辱的人,我的解决办法是这样的 我正在使用类型为“GET”的$.ajax()调用。 额外的参数肯定是问题所在 然后我想起jQuery中有一个$.get()函数 成功了 因此,$.ajax()似乎会添加额外的参数,Amazon签名4预签名URL将失败,即使签名有效 但是使用$.get()将成功 希望这能帮你省去很多悲伤