首页  >  文章  >  后端开发  >  javascript - Thinkphp使用ajax的时候,有时候使用相对地址是报错,是什么原因?

javascript - Thinkphp使用ajax的时候,有时候使用相对地址是报错,是什么原因?

WBOY
WBOY原创
2016-08-18 09:16:151122浏览

比如:

<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