所以我试图检查我的服务器上是否存在pdf文件。
PDF文件以韩国语命名,如abc.com/토보토보.pdf
我试过了:
function UrlExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
console.log(http.status);
}
但问题是它始终编码为 example.com/%C3%AD%C2%86%C2%A0%C3%AB%C2%B3%C2%B4%C3%AD%C2%86 %C2%A0%C3%AB%C2%B3%C2%B4.pdf
UrlExists("example.com/토보토보.pdf")
01:51:29.144 VM428:14
HEAD
http://example.com/%ED%86%A0%EB%B3%B4%ED%86%A0%EB%B3%B4.pdf
404 (Not Found)
如何解决我的问题?
答案 0 :(得分:1)
我想也许您希望在发送http请求之前通过encodeURIComponent
运行网址的基本文件名部分。
这应该将您的韩文文本转换为转义文本(带有百分号),然后就可以找到它。
来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
答案 1 :(得分:0)
尝试window.encodeURI
或window.encodeURIComponent
:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
// encodes characters such as ?,=,/,&,:
console.log(encodeURIComponent('?x=шеллы'));
// expected output: "%3Fx%3D%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
console.log(encodeURIComponent('?x=test'));
// expected output: "%3Fx%3Dtest"
或试试这个:
const pdf = {name:"토보토보"};
fetch(url, {
method: 'POST',
body: JSON.stringify(pdf),
headers: new Headers({
'Content-Type': 'application/json'
})
})
.then(function(res){
return res.json()
})
.then(function(v){
// read the result
})
或者您可以通过将JSON作为查询参数来执行GET请求:
const pdf = {name:"토보토보"};
const url = "example.com?pdf=${JSON.stringify(pdf)}"
fetch(url).then(...);