【问题标题】:CORS working on my pc with no errors, but not working on any other deviceCORS 在我的电脑上工作没有错误,但不能在任何其他设备上工作
【发布时间】:2021-02-04 04:04:39
【问题描述】:

这是我的 CORS 代码。我已经在https://in.000webhost.com/上传了我的网站(这是一个免费的网络托管服务。我的controller.php页面中有这个代码。现在当我尝试通过我的电脑上的url访问网站时,它工作正常。但如果我使用任何其他设备通过 url 访问网站,我通过 AJAX 调用 controller.php 显示的页面部分不起作用,并显示错误(参考图片)资源是控制器.php ,具有 CORS 标头的同一文件。

 if (isset($_SERVER['HTTP_ORIGIN'])) {
      
      header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");  
    }else{
        header("Access-control-Allow-Origin: *"); 
    }
      header('Access-Control-Allow-Credentials: true');
      header('Access-Control-Max-Age: 86400');    
    
      if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
            
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
          
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS, DELETE, PUT");         
        
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
    
        exit(0);
    }

【问题讨论】:

    标签: php cors


    【解决方案1】:

    您必须从

    更新 ajax 请求 URL

    http://localhost/myprojects/test_MaruthiSolar/bootstrap-4.1.3-dist/controller.php

    这样的事情

    https://maruthisolar.000webhostapp.com/myprojects/test_MaruthiSolar/bootstrap-4.1.3-dist/controller.php

    【讨论】:

    • Localhost 相当于 127.0.0.1。我敢打赌它现在在您的计算机上运行的原因是因为您有一个使用 apache 或 php -S localhost:80 index.php 运行的本地副本。如果您停止本地服务器,它也会在您的计算机上失败。一旦您更改了您的 url 以反映此处的帖子,您应该考虑为什么禁用 COORS。这是一项安全功能,只有在您完全了解风险时才应禁用。我建议您不要这样做,因为它可以避免。
    • 我已经更新了ajax请求的url,但是还是没有解决问题。当我在控制台中检查响应时,它正在返回响应,但不显示它。它显示错误:无法修改标头信息。标头已由 .....controller.php 发送。
    • 它现在可以工作了,我必须在
    猜你喜欢
    • 2011-01-19
    • 2021-03-27
    • 1970-01-01
    • 2013-09-29
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    相关资源
    最近更新 更多