我正在尝试通过从当前远程页面向其他远程服务器 Controller 传递 ajax 请求来获取数据
这是我的第一个远程查看页面代码:
<?php include 'header.php'; ?>
<script src="/assets/js/plugins/jquery.min.js"></script>
<script src="/assets/js/jquery.validate.min.js"></script>
<script>
$.noConflict();
</script>
<div class="breadcrumb-row">
<div class="container">
<div class="row">
<div class="col-md-12 col-sm-12 m-b30">
<div class="section-head">
<div class="newsLetter-bx">
<form role="form" id="status_form" name="status_form" method="post" autocomplete="off" >
<div class="input-group">
<input name="lr_no" id="lr_no" class="form-control" placeholder="Enter L.R No" type="text">
<span class="input-group-btn">
<button type="submit" id="get" class="site-button m-l10">Submit</button>
</span>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$("#get").click(function(){
console.log("hello");
status_form();
return false;
});
function status_form()
{
var lr_no = $('#lr_no').val();
$.ajax({
url :"http://demo.barque.online/sitecontroller/StatusController/fetchStatus",
type:"POST",
dataType: "json",
data:{
lr_no:lr_no,
},
dataType: "html",
success: function(data)
{
console.log(data);
// $('#status_table').html(data);
// //$('#consignor_name').trigger("change");
// enquiryStatus();
},
error:function(data)
{
alert("error message"+data);
},async:false,
});
}
</script>
<?php include 'footer.php'; ?>
这是我的第二个删除 Controller :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class StatusController extends CI_Controller {
public function __construct()
{
parent::__construct();
if(!is_logged_in())
{
redirect("user/SigninController/");
}else{
$this->load->model("sitemodel/StatusModel",'sModel');
}
}
function fetchStatus(){
$lr_no = $this->input->post('lr_no');
$statusResult = $this->sModel->fetchStatus($lr_no);
echo json_encode($statusResult);
}
}
这是我的模型:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class StatusModel extends CI_Model {
function fetchStatus($lr_no){
$this->db->select('*');
$this->db->from('bilty');
$this->db->where('lr_no',$lr_no);
$query = $this->db->get();
return $query->result();
}
}
我收到此错误
jquery.min.js:4 Access to XMLHttpRequest at 'http://demo.barque.online/sitecontroller/StatusController/fetchStatus' from origin 'http://barquetranslogistics.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我不知道我的代码哪里错了。 我只是通过 ajax 请求从我的网站页面将 id(lr_no) 传递给其他项目 Controller 的功能
最佳答案
例如,您将 JS 托管在 http://barquetranslogistics.com
(源)中,而远程 PHP 服务器托管在 http://demo.barque.online
,您可以使用此 PHP header 从 JS 发布跨域:
public function __construct()
{
header('Access-Control-Allow-Origin: http://barquetranslogistics.com');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 604800');
header("Access-Control-Allow-Headers: Origin, Content-Type, Accept, Access-Control-Request-Method");
header("Access-Control-Allow-Methods: GET, POST");
parent::__construct();
if(!is_logged_in())
{
redirect("user/SigninController/");
}else{
$this->load->model("sitemodel/StatusModel",'sModel');
}
}
关于javascript - 我正在将 ajax 请求传递到另一个远程服务器以获取访问记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57106073/