标题CORS“Access-Control-Allow-Origin”缺少Codeigniter

时间:2016-06-12 15:17:09

标签: javascript php ajax codeigniter

我正在尝试学习如何在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”缺失。

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

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

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

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