gpt4 book ai didi

javascript - 如何将带有 URL 的文本作为参数安全地传递给 CodeIgniter Controller ?

转载 作者:行者123 更新时间:2023-11-28 08:00:57 25 4
gpt4 key购买 nike

我正在尝试使用 jQuery、通过 AJAX 从 JavaScript 发送一个可能包含一个或多个 URL 的字符串。

该文本将由 CodeIgniter Controller 接收。

我遇到了一些错误。有时是 404 错误,有时是 406 错误,具体取决于我发送数据的方式。

现在我这样发送:

var dsPost = encodeURIComponent(base64_encode(postContent));

$.ajax({
url: "/posts/createTextPost/" + dsPost,
type: "POST",
data: "userIdWall" + "=" + userIdWall,
success: function(data, textStatus, jqXHR) {

},
error: function (jqXHR, textStatus, errorThrown) {

}
});

base64_encode fn 是 phpjs 实现。

在 CI Controller 中我这样做:

public function createTextPost($dsPost) {
$dsPost = base64_decode(urldecode($dsPost));
}

问题是,数据可以保存到数据库,但我不明白为什么会出现 404 错误。

有什么想法吗?

谢谢。

最佳答案

base64_encode() 函数有时会在编码字符串中添加 /,因此 Codeigniter 操作方法的行为类似于 第二个 参数

In case Encoded String like: qwqw221@1223/dds*(ewfd)

比 ci 的问题

string part after "/" char behaving like 2nd param

'*' is not allowed char

因此您应该使用 GET 查询字符串而不是 CI param

喜欢

url: "/posts/createTextPost/?crypt=" + dsPost

并在 CI Controller 操作中获取查询字符串

public function createTextPost() {
$dsPost = base64_decode(urldecode($this->input->get("crypt")));
}

关于javascript - 如何将带有 URL 的文本作为参数安全地传递给 CodeIgniter Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25397195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com