【发布时间】:2015-08-12 21:14:28
【问题描述】:
我使用wavesurfer,我收到以下错误:
XMLHttpRequest cannot load https://audiotemp.domain.net/RE65bbf6f0a2760184ab08b3fbf9f1d249.mp3.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://my.domain.net:3000' is therefore not allowed access. The response had HTTP status code 403.
调用已加载,但未绘制波形,我检查了请求网络,发现此调用的两个请求如下:
- 403 禁止。
- 304 未修改。
调用加载代码如下:
scope.wavesurfer.load(scope.url);
对于第二张图片,我发现发送请求的 cookie 如下:
Cookie:__zlcmid=TAePb8mwejYLug; calltrk_referrer=https%3A//app.gotomeeting.com/%3FmeetingId%3D306279333; calltrk_landing=https%3A//www.dentalmarketing.net/capture/; calltrk_session_id_150722382=c16eaa33-386f-4ab3-ba8d-b3d0cff070ef; __utma=52313532.1896763581.1423186152.1427741816.1431536946.4; __utmz=52313532.1431536946.4.3.utmcsr=bigleap.com|utmccn=(referral)|utmcmd=referral|utmcct=/utahs-best-brightest/; _ga=GA1.2.1896763581.1423186152; CloudFront-Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9hdWRpb3RlbXAuZGVudGFsbWFya2V0aW5nLm5ldC8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNDMzMDE2ODQ5fX19XX0_; CloudFront-Signature=btJ4dYPe3Cv87mQZzb6dkYVOLRcKQbscJ3h-ZJgSWGikNi1nXLuYXCGIwsHJWbhdTRiP8Gjru0mIQyOJdCioOa4tP3sAOSGXl9Cy1T2bM1sahgWZZ3GSk6GMyi21TVy3YsxDEdTUoMipeE0b5CduzcpcquB3hjYtfOUwI6CIrsTXkhajrGAk1rg~6tItPqMtxgmwrRM1oM8th0UgxgPWwVD2pok1ecS5ylwOiXbnSETpQzgXqS0C37bT94KpvafCjaclqgQPNcXrZRqbK~HLh28Gd4IZ3pDzIr3GNe3lkDUVIBYbStDsGZtawnS53ASmGXl3rP~DrPKYlahYX~ajKg__; CloudFront-Key-Pair-Id=APKAJL5DFWOODOOKTH2A
我使用 Node.js 将这个 cookie 代码如下:
res.cookie('CloudFront-Policy',encodedCustomPolicy,{domain :cookieDomainName , path:'/', httpOnly:true,secure:true});
res.cookie('CloudFront-Signature',customPolicySignature,{domain :cookieDomainName , path:'/', httpOnly:true,secure:true});
res.cookie('CloudFront-Key-Pair-Id',cloudFrontKeyPairId,{domain :cookieDomainName , path:'/', httpOnly:true,secure:true}
所以,我需要在第一个请求上放置三个 cookie,以获取调用并绘制它的波形。
- 如何在第一次请求时发送 cookie?
- 调用wavesurfer的加载函数时如何放置header?
【问题讨论】:
-
CORS 是跨域资源共享的缩写。在不使用 CORS 的情况下,您只能从与资源相同的域中请求资源。在客户端无法规避这一点。如果您无权访问服务器(正如您在 cmets 中对另一个答案所述),那么您将无法访问该资源。资源所有者是否允许您访问,他们将为您提供有关如何使用资源的正确信息。
-
另外,您不能劫持其他网站放置的 cookie 以绕过其访问限制并自己访问资源,就像您似乎正在尝试做的那样。
标签: javascript angularjs node.js cookies amazon-web-services