簡體   English   中英

在聯機服務器上工作時,如何通過向控制器方法中發布一些數據來獲得跨域的Ajax響應。

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM