ExtJS发布json数据Access-Control-Allow-Origin错误

时间:2017-01-12 08:42:41

标签: json ajax extjs

我正在尝试使用ELK容器在Kibana仪表板上发布一些json数据但是我收到错误XMLHttpRequest无法加载myUrl。请求的资源上不存在“Access-Control-Allow-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');
           }
       });  
    } 

1 个答案:

答案 0 :(得分:0)

  • 正如您已经发现的那样,Ajax请求有效:服务器获取请求并对其进行处理。
  • 服务器(Kibana)回复每个请求。
  • 您的浏览器不允许您的应用程序访问该响应,因为服务器未发回“访问控制 - 允许 - 来源”#39;标头具有适当的值。这样,浏览器确保恶意javascript无法从整个Web上的任意服务器加载任意数据,除非服务器明确允许。这称为CORS,您可以在网上找到关于此主题的大量资源。

E.g。进一步阅读:"No 'Access-Control-Allow-Origin' header is present on the requested resource"

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