【问题标题】:header CORS “Access-Control-Allow-Origin” missing Codeigniter标头 CORS “Access-Control-Allow-Origin” 缺少 Codeigniter
【发布时间】:2016-06-13 02:06:51
【问题描述】:

我正在尝试学习如何在 Codeigniter 中使用 Ajax。这就是为什么我尝试制作一个小视图和一个测试控制器但似乎不起作用的原因。你能帮助我吗?这是我的看法:

    <script src="https://code.jquery.com/jquery-3.0.0.min.js" integrity="sha256-JmvOoLtYsmqlsWxa7mDSLMwa6dZ9rrIdtrrVYRnDRH0=" crossorigin="anonymous"></script>
<form name="modulo">
    <p>Nome</p>
    <p><input type="text" name="nome" id="nome"=></p>
    <p>Cognome</p>
    <p><input type="text" name="cognome" id="cognome"></p>
    <input type="button" id="bottone" value="Invia i dati">
</form>
<div id="risultato"></div>
<script type="text/javascript">
$(document).ready(function() {
  $("#bottone").click(function(){
    var nome = $("#nome").val();
    var cognome = $("#cognome").val();
    $.ajax({
      type: "POST",
      url: "http://lifedesktop/welcome/ajax",
      data: "nome=" + nome + "&cognome=" + cognome,
            crossOrigin: true,
      dataType: "html",
      success: function(msg)
      {
        $("#risultato").html(msg);
      },
      error: function()
      {
        alert("Don't work...");
      }
    });
  });
});
</script>

这是我的控制器:

public function ajax()
    {
        if($this->input->is_ajax_request()){
        $nome = $_POST["nome"];
        $cognome = $_POST["cognome"];
        if ($nome == "" || $cognome == "")
        {
                echo "Inserire nome e cognome!";
        }
        else
        {
                echo $nome . " " . $cognome;
        }
        }
    }

在控制台网页我有这个错误:

缺少标头 CORS“Access-Control-Allow-Origin”。

你能帮帮我吗?

【问题讨论】:

  • 您是否尝试过在网上搜索该错误?这个问题每天在这里被问很多次。
  • 您是否尝试过在服务器上而不是在本地运行它?您的开发机器是如何设置的?你在运行 MAMP 吗?通常,您需要在lifedesktop/welcome/ajax 的响应标头中添加“Access-Control-Allow-Origin: *”
  • charlietfl 我尝试过的解决方案不起作用
  • terrorfall 我已经添加了
  • 提问的方式意味着您对错误一无所知或尝试过任何研究/解决方案。这肯定会工作stackoverflow.com/a/9866124/1175966

标签: javascript php ajax codeigniter


【解决方案1】:

如果您可以访问api,请将此标头设置为您的 php 代码:

header('Access-Control-Allow-Origin: *');  

如果没有,您只能在自己的网页中使用该 api,方法是为 chrome 或 firefox 安装一些 CORS 插件,例如 this。 (无法与用户分享)

【讨论】:

    猜你喜欢
    • 2018-03-28
    • 2019-02-07
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2021-12-07
    • 2023-03-21
    • 2020-11-12
    相关资源
    最近更新 更多