【问题标题】:ExtJS post json data Access-Control-Allow-Origin errorExtJS 发布 json 数据 Access-Control-Allow-Origin 错误
【发布时间】:2017-05-27 06:53:12
【问题描述】:

我正在尝试使用 ELK 容器在 Kibana 仪表板上发布一些 json 数据,但我收到错误 XMLHttpRequest cannot load myUrl。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost' 不允许访问。尽管出现错误,但它在 Kibana 仪表板上将数据显示为一个字符串中的整个 json 为“message=test”,它必须只是“test”。
即使我错误解析的 json 数据被正确发送并显示在 Kibana 上,它也会一直给我“失败”警报。

我的功能是

    sendLog: function()
    {

      Ext.Ajax.request({
           url: url,
           cors: false,
           useDefaultXhrHeader : false,
           method: 'POST',
           params:
           {    
                "message": "test"
           },
           success: function () {
               alert('success');
           },
           failure: function () {
               alert('failure');
           }
       });  
    } 

【问题讨论】:

    标签: json ajax extjs


    【解决方案1】:
    • 您已经发现,Ajax 请求有效:服务器获取请求并处理它。
    • 每个请求都由服务器 (Kibana) 响应。
    • 您的浏览器不允许您的应用程序访问该响应,因为服务器没有发回具有适当值的“Access-Control-Allow-Origin”标头。这样,浏览器可以确保恶意 javascript 无法从整个 Web 的任意服务器加载任意数据,除非服务器明确允许。这称为 CORS,您可以在网络上找到有关此主题的大量资源。

    例如延伸阅读:"No 'Access-Control-Allow-Origin' header is present on the requested resource".

    您必须检查是否以及如何告诉 Kibana 将自定义 Http 标头与响应一起发回。

    【讨论】:

      猜你喜欢
      • 2018-12-12
      • 2012-08-16
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 2016-02-14
      相关资源
      最近更新 更多