Javascript 如何解决ajax数据编码中的斜杠查询问题?
我尝试在jquery中使用ajax发送GET方法, 当数据具有特定的字符串或字符时会出现问题 我想在jquery查询中发送完整的uri路径 我试着对这些废话进行编码或解码,但真的不起作用Javascript 如何解决ajax数据编码中的斜杠查询问题?,javascript,java,ajax,rest,query-string,Javascript,Java,Ajax,Rest,Query String,我尝试在jquery中使用ajax发送GET方法, 当数据具有特定的字符串或字符时会出现问题 我想在jquery查询中发送完整的uri路径 我试着对这些废话进行编码或解码,但真的不起作用 my jsp file ==================================================================================== $("#kakaoLogin").click(function() { var logi
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"
});
结果与我的谷歌devtool控制台
(索引):20
(索引):21
jquery.min.js:5 GET…&login\u page=http%3A%2F%2Flocalhost%3A8000%2Flogin&response\u type=code 400(请求错误)
如何修复该死的问题?我怀疑这实际上与查询字符串编码有关。斜杠应该在querystring中编码/转义,因此您应该希望当前行为继续,而不是更改。如果签出其中一个中使用的重定向路径,则它们将对查询字符串进行完全编码 这些更可能是您的问题: A) 这似乎不是正确的端点(您正在尝试访问POST端点以刷新令牌)。尝试登录并获取用户令牌的端点是GET
/oauth/authorize
。看
B) 即使这是正确的端点,也应该是redirect\u uri
,而不是login\u page
C) 如果您确实是第一次尝试授权用户,OAuth流将要求在新选项卡或弹出窗口中实际打开登录url(/OAuth/authorize?client_id={app_key}&redirect_uri={redirect_uri}&response_type=code
),因为如果用户未登录Kakao,它需要将它们重定向到登录页面,然后才能批准/创建身份验证令牌。您可以在上看到此功能
我强烈建议阅读REST API文档和/或签出-它大大简化了身份验证过程,只需几行代码即可创建登录按钮。怀疑您正在向未启用CORS的API发出oauth令牌请求,并且应该从您的服务器执行此操作。他们可能不想让你把你的证书暴露在public@charlietfl谢谢你的建议。我明白你说的。现在我知道我应该在控制器上编写代码,而不是JSP。谢谢你的建议。