2014-01-21 5 views
2

안녕하세요 저는 각도 js와 codeigniter를 처음 사용했습니다.컨트롤러 anglejs에서 codeigniter 컨트롤러로 배열을 보내려면 어떻게해야합니까?

그래서 angularigns 서비스에서 codeigniter 컨트롤러로 객체를 보내는 데 문제가 있습니다.

내 코드가 있습니다.

각도 (service.js) :

help.updateProductService = function(products){ 
     return help.http({ 
      url: "/www/Rubee/index.php/pages/editProduct/", 
      method: "POST", 
      data: $.param({ 
       "product" : products 
      }), 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
     }) 
    } 

CodeIgniter의 (pages.php) :

public function editProduct(){ 
     print_r($_POST); 
     print_r($this->input->post('product')); 
    } 

나는 오류가 ". 키 문자가 허용되지 않는 $$ hashKey" 을 가지고 그래서 오전 코드에 문제가 있습니까? 또는 이것을 해결하는 더 좋은 방법은 무엇입니까?

이 해결 ======================================

그래서 경우 나 같은 동일한 문제가,

input.php/폴더 시스템/코어에 가서 기능 _clean_input_keys ($ str을)를 찾아, 기능 블록은 다음과 같이해야합니다 :

function _clean_input_keys($str) 
{ 
    if (! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) 
    { 
     exit('Disallowed Key Characters.'); 
    } 

    // Clean UTF-8 if supported 
    if (UTF8_ENABLED === TRUE) 
    { 
     $str = $this->uni->clean_string($str); 
    } 

    return $str; 
} 

그래서 당신이 볼 수 preg_match, 정규식이 들어 있습니다. 정규 표현식에 예외를 추가 할 수 있습니다. 또는 무엇을 해야할지 모르는 경우 해당 코드를 차단하고 $ str 만 반환하십시오.

+0

ehmm ... 여전히 작동하지 않습니다. 데이터를 시도하고 크롬을 사용하여 자바 스크립트를 디버그하면됩니다. 네트워크 탭에서 내 데이터가 각도로 전송되는 것을 볼 수 있습니다. 하지만 codeigniter에서 액세스하려고 할 때 항상 null 인 이유를 이해하지 못합니다. – singgih

+0

점이있는 주요 게시물 데이터가 있습니까? –

+0

아니오 {{ "id": "1", "product_name": "apple", "price": "11", "discount_price": "1"}}} – singgih

답변

3

나는 이것이 오래된 것을 알고 있지만 게시물에 $$ hashKey를 제거하려면 angular.copy()를 사용하여 제거하십시오. 따라서 :

data: $.param({ 
      "product" : angular.copy(products) 
     }) 
관련 문제