代码之家  ›  专栏  ›  技术社区  ›  Matthew

如何解决iron ajax响应延迟问题

  •  0
  • Matthew  · 技术社区  · 6 年前

    我正在尝试删除此AJAX请求中的错误。运行这个AJAX调用时,它会快速加载模板,但在一段时间后(我认为超时),以下错误会记录到控制台。

    加载失败 https://api/endpoint :
    请求的资源上不存在“Access Control Allow Origin”标头。
    “来源” https://internal.msmni.com 因此不允许访问。

    应用程序托管在IIS上 app.domain.com API端点位于 api.domain.com .

    <iron-ajax id="ajaxCustomers"
      url="https://api/endpoint"
      method="post"
      handle-as="json"
      content-type="application/json"
      body="[[request]]"
      last-response="{{response}}"
      loading="{{loading}}"
      headers="Access-Control-Allow-Origin"></iron-ajax>
    

    ...

    <template is="dom-repeat" items="[[response]]" as="item">
      <p>[[customer]]</p>
    </template>
    

    是否有方法正确设置标头和/或配置服务器以删除此错误?

    附笔。

    我正在使用Node的Express,在 server.js 文件

    res.header("Access-Control-Allow-Origin", "*")
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, content-type, Accept, Authorization, x-api-key")
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Malte Laukötter    6 年前

    错误 No 'Access-Control-Allow-Origin' header 意味着您的api没有设置 Access-Control-Allow-Origin 响应中的标头,因为这需要由服务器返回,以允许断开同源策略(请求中不能包含它),请参阅: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

    因此,您的api应该设置如下标题 Access-Control-Allow-Origin: app.domain.com 因此,您的应用程序可以读取数据。