AJAX Post 请求 URL 添加了奇怪的字符
Posted
技术标签:
【中文标题】AJAX Post 请求 URL 添加了奇怪的字符【英文标题】:AJAX Post request URL getting weird characters added 【发布时间】:2011-12-14 07:43:39 【问题描述】:我现在一直在尝试制作这个跨浏览器发布语句,但我收到以下错误:
$.ajax(
type: 'POST',
url: "http://ourdevtest.com/foo/foo",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: form.serialize(),
success:function(result, textStatus, xhr)
form.hide();
console.log('success in preview form');
console.log("result: " + JSON.stringify(result));
console.log("textStatus: " + textStatus);
console.log("xhr: " + JSON.stringify(xhr));
app.showThankYou();
,
dataType: 'json'
);
);
,
返回控制台错误:POST http://%E2%80%8B/%E2%80%8B/%E2%80%8Buser:%E2%80%8Bpassword@ourdevtest.com/%E2%80%8Bfoo/%E2%80%8B1/%E2%80%8Bfoo/%E2%80%8B
它无法加载此 URL,但我不知道如何阻止它添加奇怪的字符。
【问题讨论】:
%E2%80%8b 是â
...奇数的url编码字节形式。
【参考方案1】:
试试这个
首先删除
contentType: "application/x-www-form-urlencoded; charset=utf-8",
形成你的 ajax 调用
试试看
success:function(result, textStatus, xhr)
alert("result: " + JSON.stringify(result));
【讨论】:
【参考方案2】:如果您解码该错误响应,您将得到以下字符串:http:////user:password@ourdevtest.com/foo/1/foo/
我认为您应该尝试直接使用某些字段值,而不是使用 form.serialize(),仅用于测试目的。
【讨论】:
以上是关于AJAX Post 请求 URL 添加了奇怪的字符的主要内容,如果未能解决你的问题,请参考以下文章
javascript ajax 调用通过仅使用 POST 方法的 fetch 调用:奇怪的行为是 post 后跟 get plus 再次请求所有资源?