欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-28 16:33:04
...
比如:
var root=window.location.origin;

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

比如上面这段代码,其中url已经在前面用U方法获取了相对地址。
如果我在post的时候,直接使用url就会返回整个页面,
添加了root后,就可以正常使用。

有遇到过相似情况的吗?

而且只是在有些地方会这样,一般情况不会出现这样的。

本页面使用了百度编辑器,会有什么影响吗?

补充说明:
上面可能表达得不太清楚,我添加了root后的请求地址是:root+"/"+url,
没有添加的时候请求的是:url (这时我并没有在前面加"/").

url的地址是用Thinkphp的U方法在本页面获取的,当然是可以直接访问,正确的地址;所以我才会有这样疑问。

回复内容:

比如:

var root=window.location.origin;

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

比如上面这段代码,其中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大法好。