鍍金池/ 問答/HTML/ ajax 中的 url 為什么會自動在端口名字前加上域名?

ajax 中的 url 為什么會自動在端口名字前加上域名?

ajax 中的 url 為什么會自動在端口名字前加上域名?
例如我們寫 ajax 是這樣的

var urls='<%=contextPath%>/app/api/v1/apply/getMessage';
$.ajax({
          type: "POST",
          url: urls,
          dataType: 'json',
          data: datas,
          success: function(data){
                     //dosomething
                 }
       })

<%=contextPath%> 可以不用管,就是一個相對路徑,就是我很好奇,假如網(wǎng)站名稱或是服務器是 http://www.website.com , 然后實際上的 url 就是

http://www.website.com/<%=contextPath%>/app/api/v1/apply/getMessage 

問題來了,請問這個 url 前增加的網(wǎng)站地址是瀏覽器做的,還是 ajax 做的?這個和什么有關?請大神們賜教,謝謝。

回答
編輯回答
維她命

url可以寫相對地址,也可以寫絕對地址,相對地址就是相對于當前頁面url,當前頁面是a.com,請求的url自然是a.com/url。

2018年6月27日 22:43
編輯回答
夢若殤

你看js和css也是一樣的啊

<script src="xxx.js"></script>

訪問的也是http://www.xxx.com/xxx.js

因為xxx.js是服務器www.xxx.com根目錄下的資源啊

這個很難理解嗎????
你說的問題也是同理啊

2017年12月21日 03:10
編輯回答
汐顏

因為你寫的url是相對路徑,所以會是這樣,是瀏覽器做的,解決辦法就是寫絕對路徑就好了

2018年8月8日 14:31
編輯回答
舊酒館

在網(wǎng)頁文檔中,任何url都包括完整的 協(xié)議、域以及路徑

例如主頁面的是 http://www.baidu.com/s/t

  • 當這個url的協(xié)議與頁面本身的協(xié)議相同時候(如: http://www.163.com) 可以簡寫成: //www.163.com
  • 當域(包括域名和端口)也相同的時候(如: http://www.baidu.com/s?wd=xx) 可以簡寫成 /s?wd=xx
  • 路徑還可以根據(jù)相對關系進一步改寫, (如: http://www.baidu.com/s/n)改寫成 ./n../s/n

PS:

協(xié)議不同,協(xié)議不可省略,域不同則域不可省略, 你省略了啥就意味著跟HTML文檔主頁面的一致
規(guī)則適用于各種超文本資源加載: script[src] link[href] a[href] img[src] audio[src] video>source style.background=url(src) 等

2017年3月17日 23:53