gpt4 book ai didi

javascript - 使用 Safari 扩展的 XMLHttpRequest 编码

转载 作者:行者123 更新时间:2023-11-30 18:40:18 24 4
gpt4 key购买 nike

在我的扩展中,我将访问级别创建为“全部”,并为每个域添加白名单 http://*/*

我的 JS 文件中有以下代码(作为结束脚本运行):

var feedbackmsg = "message goes here";  
var xmlhttp = new XMLHttpRequest();

xmlhttp.open('POST', 'http://mysitename.com/feedback.php', true);
xmlhttp.onreadystatechange = handleServerResponse;
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send("html=" + feedbackmsg);

function handleServerResponse() {
if (xmlhttp.readyState == 4) {
alert(xmlhttp.getAllResponseHeaders());
if (xmlhttp.status == 200) {
alert("send");
} else {
alert("error");
}
}
}

每当我运行它时,我都不会在警告框中收到标题响应以及错误警告消息。我该如何解决这个问题?

最佳答案

我认为,无论是否是扩展,XMLHttpRequest(如果注入(inject)到页面中)都不允许访问页面当前域之外的任何内容。控制台只是说请求已被取消。至少,我刚才测试的时候是这样的。 (我测试的时候白名单和黑名单里都没有url,但是访问选项设置为“全部”。)

您可以尝试使用代码中的 XHR 对象转到与您要“调用”的域相同的域,然后看看它是否成功。如果匹配,您就会知道这是因为页面域和 XHR 请求必须匹配。

但是,您似乎可以从扩展程序的全局页面执行跨站点 ajax 请求(很奇怪)。至少它现在似乎对我有用。这实际上有点可怕(我希望从扩展程序中调用随机服务器更困难)但它确实有效。

不过,不知道这是否对您有帮助。

关于javascript - 使用 Safari 扩展的 XMLHttpRequest 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7045550/

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