当前位置: 首页 > 知识库问答 >
问题:

没有“Access Control Allow Origin”标题-尝试了所有可能的解决方案

商骞仕
2023-03-14

我知道这个问题以前被问过很多次,但我确实试过了所有的方法,但我仍然犯了这个错误。

我试图通过索引中的ajax获取json数据。php文件。我正在ubuntu服务器上通过apache2运行我的网站。我不知道从这里到哪里去。

精确误差:

Failed to load http://localhost:32348/getinfo: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

我尝试的:-将此添加到/etc/apache2/apache2。conf文件

 <ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
</ifModule>

-将其添加到每个<代码>

Header set Access-Control-Allow-Origin "*"

-将此添加到我的index.php文件:

<?php 
    header('Access-Control-Allow-Origin: *');
 ?>

-将“json”更改为“jsonp”,将CrossDomain设置为true并添加标头以允许起源

function fetchLiveStats() {
        $.ajax({
            url: api + '/getinfo',
            dataType: 'jsonp',
            type: 'GET',
        crossDomain: true,
        headers: {'Access-Control-Allow-Origin': '*'},
            success: function(response) {
                console.log(response);
            },
            cache: 'false'
        }).done(function(data){
            pulseLiveUpdate();
            lastStats = data;
            currentPage.update();
        }).always(function () {
            setTimeout(function() {
                fetchLiveStats();
            }, refreshDelay);
        });
    }

共有2个答案

何涵忍
2023-03-14

尝试新更新时,不要忘记清空缓存(ipconfig/flushdns)和浏览器缓存,否则可能不会考虑修改。。。

赵昊阳
2023-03-14

您需要将Access Control Allow Origin标头添加到来自http://localhost:32348/getinfo

我尝试的:-将此添加到/etc/apache2/apache2。conf文件

关于你的问题,你所说的一切都意味着Apache是在端口80上托管网站,而不是在端口32348上托管网站。你换错了服务器。

一个网站不能允许自己访问另一个网站将授予浏览器所有者的数据

将“json”更改为“jsonp”

不要使用JSONP。这是一个肮脏的黑客。(它还要求<代码>http://localhost:32348/getinfo返回JSONP,这几乎肯定不会)。

将CrossDomain设置为true

这只是告诉jQuery不要添加它添加到同源请求的标头,以防HTTP重定向到不同的来源。这可以防止它成为需要预飞行的复杂请求。由于您首先没有请求相同的来源URL,因此这不会做任何事情。

添加标头以允许来源

您不能在请求上放置响应标题!

试图将其转化为需要飞行前处理的复杂请求,会给您带来更多问题。

您需要编辑负责提供服务的任何代码http://localhost:32348/getinfo

 类似资料:
  • 在我的大数据项目中,我必须开发一个JSOUP脚本来获取巴黎2018年气象数据并存储它们 我尝试了user\u Agent的所有解决方案,但都有相同的错误(URL在浏览器上工作) 错误显示在第8天,这样他可以在8次请求后检测到这是一个机器人。

  • 问题内容: 我尝试使用以下方法为32位Python安装Scrapy for Python 2.7.8(anaconda 2.1.0) 我得到这个错误 这是错误,在错误的上方和下方都有几行: 我同时拥有Microsoft Visual Studio 12.0和适用于Python 2.7的Microsoft Visual C ++编译器程序包,两者均具有vcvarsall.bat文件。 我有一个名为“

  • 我试图将谷歌地图Javascript API与我的Rails Web应用程序集成在虚拟机上本地运行。我无法从API获取Javascript代码。我下面的样本是这个。 https://developers.google.com/maps/documentation/javascript/tutorial?csw=1 我在尝试加载代码时收到的错误如下。 收到https://maps.googleapi

  • 我感觉被Python打败了,以至于我不确定还能尝试什么。我正在运行 Python 3.9,我只是无法在我的生命中让导入正常工作。这是我的目录结构: hello世界主.py 测试hello_world_main.py 当我运行< code > python test _ hello _ world _ main . py 时,我遇到了错误: 我已经完成了 我被打败了,不知道现在该怎么办。为什么会这样

  • 问题内容: 我有一个python脚本正在查询共享Linux主机上的MySQL服务器。出于某种原因,对MySQL的查询通常会返回“服务器已消失”错误: 如果此后立即再次尝试查询,通常会成功。因此,我想知道python中是否有一种明智的方法来尝试执行查询,如果失败,则可以重试固定次数的尝试。可能我想让它尝试5次再完全放弃。 这是我的代码类型: 显然,我可以通过在except子句中进行另一次尝试来做到这