首頁  >  文章  >  後端開發  >  javascript - Thinkphp使用ajax的時候,有時候使用相對位址是報錯,是什麼原因?

javascript - Thinkphp使用ajax的時候,有時候使用相對位址是報錯,是什麼原因?

WBOY
WBOY原創
2016-08-18 09:16:151118瀏覽

例如:

<code>var root=window.location.origin;

$.post(root+"/"+url,data,function(d){
    console.log(d);
  if(d.status==1){
    location.reload();
  }
})
</code>

例如上面這段程式碼,其中url已經在前面用U方法取得了相對位址。
如果我在post的時候,直接使用url就會回到整個頁面,
加入了root後,就可以正常使用。

有遇過相似情況的嗎?

而且只是在有些地方會這樣,一般情況不會出現這樣的。

本頁面使用了百度編輯器,會有什麼影響嗎?

補充說明:
上面可能表達得不太清楚,我添加了root後的請求地址是:root+"/"+url,
沒有添加的時候請求的是:url (這時我並沒有在前面加" /").

url的地址是用Thinkphp的U方法在本頁面獲取的,當然是可以直接訪問,正確的地址;所以我才會有這樣疑問。

回覆內容:

例如:

<code>var root=window.location.origin;

$.post(root+"/"+url,data,function(d){
    console.log(d);
  if(d.status==1){
    location.reload();
  }
})
</code>

例如上面這段程式碼,其中url已經在前面用U方法取得了相對位址。
如果我在post的時候,直接使用url就會回到整個頁面,
加入了root後,就可以正常使用。

有遇過相似情況的嗎?

而且只是在有些地方會這樣,一般情況不會出現這樣的。

本頁面使用了百度編輯器,會有什麼影響嗎?

補充說明:
上面可能表達得不太清楚,我添加了root後的請求地址是:root+"/"+url,
沒有添加的時候請求的是:url (這時我並沒有在前面加" /").

url的地址是用Thinkphp的U方法在本頁面獲取的,當然是可以直接訪問,正確的地址;所以我才會有這樣疑問。

相對位址是相對目前瀏覽器網址列的位址,和ThinkPHP無關。

/是根位址,直接用/說明從網域+/+url來訪問,如果你訪問的地下剛好是根位址就不會錯,同樣也會出現找不到的問題;
你使用window.location. origin說明你使用了相對位址,你要求的url剛好在window.location.origin這個相對位址下所以才正確的;
你最好把你的AJAX請求路徑都從根目錄開始,寫全路徑,這個問題本身和tp沒什麼關係,是你自己對請求位址的理解不正確。

base_url大法好。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn