Maison >développement back-end >tutoriel php >javascript - Thinkphp使用ajax的时候,有时候使用相对地址是报错,是什么原因?
比如:
<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
大法好。