JS - 仅在发送路径名时使用baseURLString

时间:2016-09-03 17:58:28

标签: javascript url

我正在尝试在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地址,或者可能不会...

2 个答案:

答案 0 :(得分:1)

你可以测试一下这个

var base_url = location.protocol + '//' + location.host + '/';

答案 1 :(得分:0)

baseURLstring将是您网站的网址,以Google为例: 谷歌的基本网址是https://www.google.com,类似你的baseurlstring就像这个https://www.yourwebsiteaddress.comurl = new URL(urlString, [baseURLstring])中的第一个参数是放在你服务器上的文件的路径(根文件夹,你的默认值)索引文件已放置)