1
在我的擴展中,我創建Access Level爲「All」,並且我也爲每個域添加了白名單http://*/*
。使用XMLHttpRequest進行Safari擴展編碼
而且我按照我的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");
}
}
}
每當我運行它,我得到的警告對話框以及錯誤警告信息沒有標題迴應。我該如何解決這個問題?
實際上,編碼在其他瀏覽器擴展中起作用 - 我爲Firefox和谷歌瀏覽器擴展完成了這些工作,這些工作確實很完美。但在Safari中,我只能使用此瀏覽器。確實,這真的很可怕:)我認爲,這應該是工作,因爲其他瀏覽器正在工作。我會檢查你的建議:)謝謝 –
Flambino是正確的:Safari只支持來自擴展的全局頁面,工具欄或彈出窗口的跨域XMLHttpRequest。您應該從其中一個位置執行xhr,然後在需要時使用消息將結果傳遞到您的注入腳本。 – canisbos