我正在尝试在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地址,或者可能不会...
答案 0 :(得分:1)
你可以测试一下这个
var base_url = location.protocol + '//' + location.host + '/';
答案 1 :(得分:0)
baseURLstring
将是您网站的网址,以Google为例:
谷歌的基本网址是https://www.google.com
,类似你的baseurlstring就像这个https://www.yourwebsiteaddress.com
,url = new URL(urlString, [baseURLstring])
中的第一个参数是放在你服务器上的文件的路径(根文件夹,你的默认值)索引文件已放置)