gpt4 book ai didi

javascript - 如何解决ajax数据编码中带有斜杠的查询字符串问题?

转载 作者:行者123 更新时间:2023-12-02 09:41:38 24 4
gpt4 key购买 nike

我尝试在jquery中使用ajax发送GET方法,当数据具有特定字符串或字符时会出现问题。

我想在 jquery querysting 中发送完整的 uri 路径。

我尝试过 URIEncode 或 URIDecode 等等,但它确实不起作用。


my jsp file
====================================================================================

$("#kakaoLogin").click(function() {

var loginPage = "${login_page}";
var urlStr = encodeURI("${login_page}");

console.log(loginPage);
console.log(urlStr);

$.ajax({
url: "${request_url}",
data: {
client_id : "${client_id}",
login_page : loginPage, // problem line
response_type : "${response_type}"
},
method: "GET",
dataType: "json"
});

我的 google devtool 控制台的结果

(索引):20 http://localhost:8000/login

(索引):21 http://localhost:8000/login

jquery.min.js:5 GET https://kauth.kakao.com/oauth/token?client_id=a4166bb …&login_page=http%3A%2F%2Flocalhost%3A8000%2Flogin&response_type=code 400(错误请求)

怎么解决这个问题?

最佳答案

我怀疑这实际上与查询字符串编码有任何关系。斜杠应该在查询字符串中进行编码/转义,因此您应该希望当前的行为继续,而不是改变。如果您检查 official demos 之一中使用的重定向路径,它们完全编码查询字符串。

这些更有可能是您的问题:

A) 这似乎不是正确的端点(您正在尝试对 POST 端点进行 GET 来刷新 token )。尝试登录并获取用户 token 的端点是 GET /oauth/authorize。请参阅here .

B) 即使这是正确的端点,也应该是 redirect_uri,而不是 login_page

C) 如果您确实是第一次尝试授权用户,OAuth 流程将需要登录 URL (/oauth/authorize?client_id={app_key}&redirect_uri={redirect_uri}&response_type =code)实际上是在新选项卡或弹出窗口中打开的,因为如果用户未登录 Kakao,则需要将其重定向到登录页面,然后才能批准/创建身份验证 token 。您可以在 this demo page 上看到此功能.

<小时/>

强烈建议阅读 REST API 文档,here ,和/或查看 their JS SDK - 它极大地简化了身份验证过程,并且只需几行代码即可创建登录按钮。

关于javascript - 如何解决ajax数据编码中带有斜杠的查询字符串问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57023874/

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