我正在发送XMLHttpRequest
,并且只希望将其发送到真实域,这些真实域不是null也不是Chrome内部的chrome:
内部域。
直到现在我仍然无法解决这个问题-我的XMLHttpRequest
在任何情况下都可以发送-但是如果使用currentDomaon == 0
或currentProtocoll == "chrome:"
,则为空。
我做错了什么?我应该如何修改代码以实现目标?
var currentDomain = "";
var currentProtocol ="";
const processingTabId = {};
function run(tab) {
if (processingTabId[tab.id]) return;
processingTabId[tab.id] = true;
let newUrl = new URL(tab.pendingUrl || tab.url)
currentDomain = newUrl.hostname;
currentProtocol = newUrl.protocol;
var xhr = new XMLHttpRequest();
var protocol = "https://";
var middle = ".myservice/"
var end = "/action/data/";
xhr.open("GET", protocol + middle + currentDomain + end, true);
xhr.responseType = 'document';
if (currentDomain !== null) && (currentProtocol !== "chrome:") {
xhr.send();
}
}
答案 0 :(得分:-2)
您可以使用正则表达式确定字符串是否为以HTTP / HTTPS开头的有效URL。
例如:
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
请参阅this堆栈溢出帖子。