[英]How to get ajax response from cross-domain by posting some data to the controller method.while working at online server
我想從Codeigniter控制器獲取數組數據,並帶有ajax請求。我正在向控制器發布一些數據,以便從數據庫中獲取相關數據。它在本地運行良好,但是當我將網站上傳到在線域並托管時,我無法得到任何響應。
我的代碼在本地服務器上運行良好,但是當我將其上傳到在線服務器時,我的ajax請求根本無法運行。沒有可用的響應數據。下面是代碼在本地服務器上運行良好
$.ajax({
type:'POST',
url:'<?php echo base_url()?>getstate',
data:'country_id='+country_id,
success:function(data){
var dataObj = jQuery.parseJSON(data);
$(dataObj).each(function(){
// Add options
$.each(dataObj,function(index,data){
alert(data['data_name']);
});
});
}
})
服務器端代碼是
public function getstate()
{
$state = array();
$country_id = $this->input->post('country_id');
$state = $this->Country_model->getstate($country_id);
echo json_encode($state);
}
我嘗試了這個
var xhr=new XMLHttpRequest();
xhr.oppen("GET","http://www.my-domain-name.co/getstate",true);
xhr.onreadystatechange = function()
{
if((xhr.readyState == 4)&&(xhr.status==200))
{
var ob=JSON.parse(xhr.responseText);
alert(ob.name);
}
};
xhr.send();
但不起作用
我該怎么辦?我是這種情況的新手...
他們是4個可能的原因/解決方案
首先請檢查您的配置項版本是否舊,請檢查base_url定義
如果站點現在有安全的URL(https)。
第2次將crossDomain參數添加到jquery ajax函數中,如下所示:
$.ajax({
type:'POST',
crossDomain : true,
url:'<?php echo base_url()?>getstate',
data:'country_id='+country_id,
success:function(data){
var dataObj = jQuery.parseJSON(data);
$(dataObj).each(function(){
// Add options
$.each(dataObj,function(index,data){
alert(data['data_name']);
});
});
}
})
檢查此以獲取更多詳細信息
第三,它被您請求的服務器阻止,然后您才能控制目標網站或指定其他訪問權限,
第四
被您的主機阻止:設置標頭(例如
)允許他們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.