【问题标题】:Angular File Upload ( CORS ) with credentials is not working带有凭据的 Angular 文件上传 (CORS) 不起作用
【发布时间】:2015-04-08 14:01:44
【问题描述】:

我正在使用角度文件模块:https://github.com/danialfarid/ng-file-upload

我在上传到需要凭据的 api 时遇到困难。我正在传递“withCredentials:true”。这似乎不起作用。

我能够在没有凭据的情况下成功上传相同 API 的另一个设置。在此 API 上正确设置了 CORS,其他 GET / POST 调用 (CORS) 在此 API 上工作。

如果我在这里遗漏了什么,如果你能指导我,那就太好了。

错误:

"NetworkError: 401 Unauthorized - devices.olacabs-dev.in/notification/doUpload"; doUpload 2 跨域请求被阻止:同源策略不允许读取主机名/通知/doUpload 处的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。我与不需要凭据的 API 主机进行了交换,并且有效。

  $upload.upload({
                    url: NotificationAPI.hostName + '/notification/doUpload',
                    headers: {'Content-Type' : 'multipart/form-data'},
                    fields: fields,
                    file: file,
                    withCredentials : true,
                }).

【问题讨论】:

  • 你有任何控制台输出,问题可能是网络活动?
  • "NetworkError: 401 Unauthorized - devices.olacabs-dev.in/notification/doUpload" doUpload 2 跨域请求被阻止:同源策略不允许读取位于 hostname/notification/doUpload 的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。我换了一个不需要凭据的 API 主机,而且效果很好。
  • 您使用的是基本 HTTP 吗?饼干?标头令牌?看起来你必须强制它上传
  • 如果您使用 WebApi,您应该使用 Feddler 进行调试。它被浏览器掩盖的真正错误。
  • @Fals 它是 API 的基本 HTTP 身份验证。

标签: javascript angularjs angular-file-upload


【解决方案1】:

我想我遇到了和你一样的问题。我通过在响应标头中将“Access-Control-Allow-Credentials”设置为 true 来解决它。

【讨论】:

  • 你是怎么设置的?
  • 这取决于您的环境。您可以在您的网络服务器虚拟主机配置中设置它,或者让您的服务器端应用程序返回它。
猜你喜欢
  • 1970-01-01
  • 2011-05-11
  • 2017-07-13
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-31
  • 2014-10-07
  • 1970-01-01
相关资源
最近更新 更多