请问大家在用ajax的时候,url是用的绝对路径还是相对路径?

因为一直以来都是模拟数据,所以用的都是相对路径。所以有几点疑惑:
1、使用绝对路径会不会出现跨域的问题呢?
2、使用相对路径怎么访问真实站点的数据呢?

//顺便问一下前后端分离时,本地环境怎么搭建

阅读 14.9k
8 个回答

绝对路径或相对路径, 在发起请求的时候都会处理为绝对路径的~

测试肯定是相对路径比较方便些.
不同服务器请求, 即为跨域用jsonp

本地环境访问线上接口肯定是存在跨域的问题

如果你的线上接口服务器返回了响应头Access-Control-Allow-Origin: *,那么就可以实现跨域调用

如果没有设置这个头,需要你本地起一套同样的服务,比如你可以设置一个全局变量

// 上线时使用
const API_HOST = 'online host';
// 线下调试使用
const API_HOST = '';

AJAX的url可以写成

let url = `${API_HOST}/...`

如果你本地没有对应的接口环境,可以使用fiddler或者charles设置一个代理,把线上的接口返回内容保存为一个文件,然后将这个接口地址映射到你的接口内容文件,请求的url直接设置成线上地址即可

都可以,但是需要注意的是
使用绝对地址,如果是外部域名就涉及到跨域,需要使用jsonp才行

只要不符合同源策略都属于跨域,跟你使用什么路径应该没有什么关系,前后端分离,没有必要分那么细

使用绝对路径是指带 / 还是带 http(https)协议 + 域名?前者不会带来跨域问题,后者可能会带来跨域问题,但还是要看是不是在不同一个域下。

前端开发时,如果要模拟访问真实环境的数据,可以考虑使用 proxy,node express 或者 webpack-dev-server 里应该都有相应的中间件或插件吧

1.首先应该清楚什么是跨域 由于浏览器同源策略什么的 搜一下应该有很多专门说的 大概你的js文件所在的服务 器和请求的api不在一台服务器上
如果出现跨域可以通过jsonp 或者是 cors解决 jsonp缺点只能用get方式 cors服务器设置允许访问的域

2.相对路径 js进行访问的时候会在你的相对路径前面带上你服务器的地址
绝对路径当然你想访问哪里就访问哪里了 就看人家接不接受了

个人观点

注意,有的时候并没有跨域,还会出现同域跨源,资源来自不同服务器,也会报错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏