我正在尝试在JS中创建new URL
,以便可以为异步请求进行操作。因为没有什么是跨域的(我认为这是该术语的正确用法),所以我发送给异步请求的URL看起来像/MyLoginUrl
或/ MyUpdateDataUrl
等(即,我仅发送路径名)。
我尝试从现有网址创建new URL
基本上是这样的:
// Actually I set the url as an arguement in a function,
// but for demonstration it will be a variable
var url = '/myPathname';
// Much later...
url = new URL (url);
但是,这返回了语法错误。一旦看了docs,我就知道了原因。
根据文档,
new URL
的语法如下所示:url = new URL(urlString, [baseURLstring])
url = new URL(urlString, baseURLobject)
该文档还说:
baseURLstring
:是一个DOMString,表示在urlString是相对URL的情况下要使用的基本URL。如果未指定,并且没有在参数中传递baseURLobject,则默认为'about:blank'。如果它是无效的绝对URL,则构造函数将引发SYNTAX_ERROR类型的DOMException。文档中
baseURLstring
的几个示例是:var a = new URL("/", "https://developer.mozilla.org"); // Creates a URL pointing to 'https://developer.mozilla.org/'
var b = new URL("https://developer.mozilla.org"); // Creates a URL pointing to 'https://developer.mozilla.org/'
var c = new URL('en-US/docs', b); // Creates a URL pointing to 'https://developer.mozilla.org/en-US/docs'
因此,我试图弄清楚如何为当前的
baseURLstring
模拟localhost
,最终当它由我将用于网络的主服务器托管时,该模拟为baseURLstring
。我猜想这将以某种方式涉及获取我拥有/网络中服务器的计算机的IP地址,或者可能不是。 最佳答案
你可以测试一下
var base_url = location.protocol + '//' + location.host + '/';