您好我是角度js和codeigniter的新手。
所以我遇到了从angularjs服务发送对象到codeigniter控制器的问题。
有我的代码。
angular(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 :(得分:3)
我知道这是旧的,但要删除帖子中的$$ hashKey,请使用angular.copy()将其删除。所以:
data: $.param({
"product" : angular.copy(products)
})