gpt4 book ai didi

javascript - 尝试通过 AJAX 向脚本发送长字符串

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

我是 javascript 的新手,过去三个小时我一直在尝试处理通过 AJAX 发送数据的问题。

我正在尝试使用函数将字符串发送到 php 文件。该函数的作用是向一个包含查询的 php 文件发送 GET 请求并输出 HTML;该函数获取 HTML 并将其放入“html_user_club”中。

    function userClubVotes(str_1,str_2,str_3) {
if (str_1 == "") {
document.getElementById("html_user_club").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("html_user_club").innerHTML = this.responseText;
}
};
xmlhttp.open("GET",'ajax/ajax-user-club-votes.php?user_id='+str_1+'&user_to_visit='+str_2+'&following_votes='+str_3,true);
xmlhttp.send();
}
}

它可以工作,但前提是 url 不是很长。使用此网址不起作用:

ajax/ajax-user-club-votes.php?user_id=13&user_to_visit=134&following_votes=1323.1323.134.23425.25245.42.24524.233.2344.232.1323.134.23425.25245.42.24524。 233.2344.232.1323.134.23425.25245.42.24524.233.2344.232.1323.134 .23425.25245.42.24524.233.2344.232.1323.134.23425.25245.42.24524.233.2344.232.23425.25245.42.24524.233.2344.232.1323.134. 23425.25245.42.24524.233.2344.232.1323.134.23425.25245.42.24524.233.2344.232.1323.134.23425.25245.42.24524.233.2344.232 .

那么,有没有办法通过 AJAX 发送长网址?

编辑:

好的,所以我必须通过 POST 而不是 GET 发送字符串。我尝试改变这个:

xmlhttp.open("GET",'ajax/ajax-user-club-votes.php?user_id='+str_1+'&user_to_visit='+str_2+'&following_votes='+str_3,true);
xmlhttp.send();

为此:

var string = '?user_id='+str_1+'&user_to_visit='+str_2+'&following_votes='+str_3;
var body = "string=" + encodeURIComponent(string);
xmlhttp.open("POST", "ajax/ajax-user-club-votes.php", true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-Length", body.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(body);

但是还是没有结果。有什么线索吗?

EDIT_2

再一次尝试,前两个变量通过 GET,最后一个变量通过 POST:

xmlhttp.open("GET",'ajax/ajax-user-club-votes.php?user_id='+str_1+'&user_to_visit='+str_2,true);
xmlhttp.send();
var body = "string=" + encodeURIComponent(str_3);
xhr.open("POST", "ajax/ajax-user-club-votes.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-Length", body.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(body);

虽然没有成功,但看起来很有希望。任何想法? (我正在尝试做类似 Sending a long string through ajax doesn't work

最佳答案

您可以改为发送 POST 请求。因此,您在请求正文中传递 following_votes,并在 .php 文件中获得 $_POST["following_votes"] 值。

关于javascript - 尝试通过 AJAX 向脚本发送长字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44865749/

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