【发布时间】:2014-02-11 04:54:48
【问题描述】:
您好,我是 Angular js 和 codeigniter 的新手。
所以我在将对象从 angularjs 服务发送到 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。
【问题讨论】:
-
ehmm... 仍然无法正常工作。如果我尝试数据,并使用 chrome 调试我的 javascript。在网络选项卡中,我可以看到我的角度发送的数据。但我不明白为什么当我尝试从 codeigniter 访问它时它总是为空。
-
是否有任何关键的帖子数据中有一个点?
-
不,就是这样 {"product":[{"id":"1","product_name":"apple","price":"11","discount_price":"1 "}]}
-
stackoverflow.com/questions/11442632/…。还要在codeignitor中检查这个文件
system/libraries/Input.php -
您好,它仍然无法正常工作,但我会再做一些研究。无论如何,谢谢您的参考。
标签: javascript php codeigniter angularjs