2013-12-11 78 views
4

當我運行託管項目服務運行完美..在Codeigniter中設置跨域

當我測試與其他項目,給我錯誤或我無法從服務得到響應。 我嘗試了很多,但沒有工作

我的AJAX調用:

self.ValidLogin = function() { 
     try { 
      $.ajax({ 
       type: "GET", 
       url: "http://xxx.xxx.xxx.xxx/TEST/index.php/TestController/TestMethod?UserName=superadmin&Password=super", 
       , 
       crossDomain: true, 
       contentType: "application/json; charset=utf-8", 
       async: false, 
       dataType: 'json', 
       cache: false, 
       success: function (response) { 
        alert("valid response"); 
       }, 
       error: function (ErrorResponse) { 
        alert("error"); 
       } 

      }); 
     } 
     catch (error) { 
      alert("Catch:" + error); 
     } 
    } 

服務端:

public function TestMethod() 
    { 
     parse_str($_SERVER['QUERY_STRING'],$_GET); 
     $UserName = $_GET['UserName']; 
     $Password = $_GET['Password']; 

     $this->load->model('LoginModel'); 
     $result = $this->LoginModel->Login($UserName,$Password); 

     header('Content-type: application/json'); 
     header('Access-Control-Allow-Origin: *'); 
     echo json_encode($result); 

    } 

我應該怎麼辦?

+0

你有檢查你的'get'成功嗎? – lighter

+0

這總是在警報('錯誤') –

+0

你檢查了這個[問題](http://stackoverflow.com/questions/11599573/access-control-allow-origin-is-not-showing-up-in-響應報頭 - 從 - codeignit)? –

回答

5

後龍賽第一輪得到了解決

self.ValidLogin= function() { 
     try { 
      $.ajax({ 
       type: "GET", 
       url: "http://xxx.xxx.xxx.xxx/TEST/index.php/TestController/TestMethod?UserName=superadmin&Password=super", 
       crossDomain: true, 
       contentType: "application/x-www-form-urlencoded", 
       async: false, 
       dataType: 'json', 
       processData: false, 
       cache: false, 
       success: function (response) { 
        alert("valid response"); 
       }, 
       error: function (ErrorResponse) { 
        alert("error"); 
       } 
      }); 
     } 
     catch (error) { 
     } 
    } 
+3

有什麼區別? – Vadorequest

+0

我認爲的內容類型 –

3

移動

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

頂端

+0

我試過但結果相同:( –

2

我試試這個我控制器上:

function __construct() { 
     parent::__construct(); 
     $this->output->set_header('Access-Control-Allow-Origin: *'); 
} 

而且它的工作! 但是沒有所有的頁面。我仍然在爲所有內容尋找解決方案。 我想這個配置應該是自動加載或什麼的。