【问题标题】:Modifying a crossdomain XML policy to accept null origin headers修改跨域 XML 策略以接受空源标头
【发布时间】:2017-11-29 14:54:35
【问题描述】:

我目前正在处理一个显示为

的错误

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 404.

请求在我的服务器上运行良好,但在我的客户端上中断。我最近发现了这个文件,public/crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->

  <!-- Most restrictive policy: -->
  <!-- <site-control permitted-cross-domain-policies="none"/> -->

  <!-- Least restrictive policy: -->

  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*" to-ports="*" secure="false"/>
  <allow-http-request-headers-from domain="*" headers="*" secure="false"/>

</cross-domain-policy>

虽然这看起来像是我一直在寻找的解决方法,但我仍然遇到同样的错误。没有像这个服务器端这样的问题,我的客户端现在基本上与我的服务器的配置相匹配。为什么此政策无法解决错误?我是否需要进一步配置此策略以接受所需的标头?

更新:Here 是我尝试发出跨域请求时客户端错误和服务器输出的概要

【问题讨论】:

    标签: xml ember.js cross-domain access-control


    【解决方案1】:

    您唯一能做的就是修改您的服务器以使用Access-Control-Allow-Origin 响应预检HEAD 请求。这是一项浏览器安全功能,您无法从您的客户端网站对其进行修改。您必须在您的服务器上进行配置。

    还要验证您访问客户端的方式。来源应该是一个有效的域。

    了解同源策略和 CORS。你真的要提出 CORS 请求吗?如果没有,请使用 ember 开发服务器代理。

    【讨论】:

    • 我的服务器实际上能够处理该请求:它转到身份验证登录页面(在本例中为 coinbase)并挂起,因为它正在等待不会到来的客户端响应。另一个奇怪的错误是,当我尝试使用 ember 代理服务器时,它仍然崩溃,说我的本地主机的来源为空。我正在考虑尝试硬重置我的开发环境,看看是否有任何好处,但除此之外,我很难过。
    • 你能验证服务器是否响应了 Head 请求吗?用什么标题?
    • Here 是当我尝试在不运行代理服务器的情况下拨打电话(包括我的服务器在终端中的输出)时,我的客户端上的错误和相应网络请求的专辑。这是你要找的吗?
    猜你喜欢
    • 2016-02-08
    • 2015-07-18
    • 2014-05-15
    • 2014-02-01
    • 2011-02-20
    • 2017-01-07
    • 2013-01-18
    • 2010-09-09
    • 2013-08-02
    相关资源
    最近更新 更多