javascript - Safari 扩展中带有特殊字符的 XMLHttpRequest 不起作用

标签 javascript safari xmlhttprequest special-characters safari-extension

我正在尝试对使用 http://myphotodiary.com 进行身份验证的 Safari 进行扩展的 API。它适用于所有不包含特殊字符的密码,例如:

å,ä,ö and space

我现在有以下代码:

var xmlHttp = new XMLHttpRequest();

var url = "https://api.myphotodiary.com/user_status.json?api_key=66217f993f25a8a05dd72970473aa2227450dcad";

var username = "iphone";
var password = "bdbiphone123";

var authy = Base64.encode(username+":"+password);

xmlHttp.open('GET', url, true);
xmlHttp.setRequestHeader("Authorization", "Basic " + authy);
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState == 4){
    var data;
    eval("data="+xmlHttp.responseText);
    console.log(data);
}
};
xmlHttp.send(null);

此代码适用于所有不包含特殊字符的密码,但如果我将登录信息更改为

var username = "blpninja";
var password = "./ hejä";

它开始失败。

这段代码在 Safari 中有效,但当我将其放入扩展中时却无效。

我还尝试了内置身份验证的 xmlHttpRequest.open

xmlHttp.open('GET', url, true, username, password);

同样的结果。

这是我的全局页面负责人:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>

我收到“无法加载资源:已取消”,这些是 Safari 发送的 header :

Authorization:Basic YmxwbmluamE6Li8gaGVqw6Q=
Content-Type:text/xml; charset=utf-8
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; sv-se) AppleWebKit/533.16 (KHTML, like Gecko)

最佳答案

不确定,也没有时间深入研究,但也许对字符串进行编码会有帮助?

var username = encodeURIComponent("blpninja"), //=> sends: blpninja
    password = encodeURIComponent("./ hejä");  //=> sends: .%2F%20hej%C3%A4

在服务器端它可能已经被解码(decodeURIComponent)

关于javascript - Safari 扩展中带有特殊字符的 XMLHttpRequest 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3099822/

相关文章:

jquery - Safari/Webkit 动画字体大小不稳定

for 循环中的 Javascript XMLHttpRequest

Javascript 在 onchange 函数中返回两个值

javascript - 使用 Jquery AJAX 进行 Stripe 支付? (仅限 JavaScript)

javascript - 限制输入结果

javascript - 按钮单击以替换图像

css - Safari 阻止鼠标单击与不相关图像对齐的链接

safari - 为什么启用了 http 基本身份验证后 mp4 视频不起作用?

forms - 使用 vba 和 xmlhttp 自动提交网站上的帖子表单

javascript - Arraybuffer 与 blob 性能