我第一次使用AWS和s3时,我必须将它与salesforce集成,以便在我尝试上传文件时上传大文件 它给了我错误
OPTIONS https://s3.amazonaws.com/ritesh 403 (Forbidden) resumable.js:344
XMLHttpRequest cannot load https://s3.amazonaws.com/ritesh. Origin https://c.ap1.visual.force.com is not allowed by Access-Control-Allow-Origin.
我正在使用resumable.js(a javascript library for sending big files in chunk) 正如你所看到我从网址https://c.ap1.visual.force.com发送文件然后我试图发送它
我发送文件的代码段是
var r = new Resumable({
target:'https://s3.amazonaws.com/ritesh',
chunkSize:1*1024*1024,
simultaneousUploads:4,
testChunks:false,
throttleProgressCallbacks:1,
query:{ 'key': 'Hello10' ,'AWSAccessKeyId': '*********' ,'policy':'{!$RemoteAction.S3FormController.getPolicy1}' ,'signature':'{!$RemoteAction.S3FormController.getSignedPolicy1}', 'acl': '{!AWS_S3_Object__c.Access__c}','success_action_status':'201' , 'success_action_redirect':'https://'+'{!$RemoteAction.S3FormController.getServerURL1}'+'/'+'{!AWS_S3_Object__c.id}' ,'Content-Type' :'application/zip' }
});
因为我正在使用现有的JS库,这就是为什么它看起来很小的问题。这段代码意味着我发送一个帖子请求到 https://s3.amazonaws.com/ritesh ritesh是我的桶名 设置其他帖子参数,如key,AWSAccessKeyId,policy,signature,acl,success_action_status等所有参数都可以正确地解释为什么我收到此错误。我的Cors配置是
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>https://c.ap1.visual.force.com/</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
我发送的参数不是任何标题我应该发送额外的标题哪个标题请发送!!请帮助如何删除此错误
答案 0 :(得分:0)
您必须使用SFDC HTTP代理。为此,您必须将地址https://s3.amazonaws.com定义为“远程站点” - &gt;设置 - &gt;秒。 - &GT;远程站点。
输入远程站点的URL。所有s-controls,自定义按钮中的JavaScript OnClick命令,Apex和AJAX代理调用都可以从salesforce.com访问此Web地址。
您的新请求应使用端点网址:“https:// c。[Instance] .visual.force.com / services / proxy”。
在您的请求标题中,您必须添加
'Authorization': 'OAuth {!GETSESSIONID()}'
和您的api-endpoint-url 'SalesforceProxy-Endpoint', apiUrl