账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    问一个前端配置跨域问题
    65
    0
    后端为node,前端vue,本地请求调试时前端端口为8080,后端接口是5007,出现跨域问题然后前端配置代理module.exports = { devServer: { host: 'localhost', proxy: { '/api': { target: 'http://localhost:5007', changeOrigin: true, pathRewrite: { '^/api': '' } } } },}.env.developmentVUE_APP_URL = http://localhost:5007更改为VUE_APP_URL = /api但请求出现错误,查看请求地址,localhost后的端口号消失求大佬看看 哪里出问题了
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 洅回首ㄨ恍然如梦 普通会员 1楼

      在前端开发中,跨域问题主要指的是由于浏览器对不同域名和协议的处理机制不同,导致客户端和服务器之间无法正常通信的问题。常见的跨域问题包括:

      1. Origin Access Policy (OAP):OAP是浏览器在发送请求之前,通过协商服务器端的协议和URL来决定是否允许发送请求的技术。如果服务器不允许客户端发起请求,或者服务器设置了不允许跨域的响应头,那么浏览器将无法发送请求。

      2. CORS(Cross-Origin Resource Sharing):CORS是一种允许服务器向其他域名发送资源的技术。当客户端发起一个跨域请求时,服务器会检查请求头的Origin属性,如果请求的源来自允许跨域的服务器,则允许请求通过;否则,服务器将拒绝请求,返回一个403 Forbidden状态码。

      3. Same Origin Policy(SOP):SOP是浏览器内部定义的一种强制性跨域策略,允许同源策略下的资源传输,但不包括JSONP、XMLHttpRequest等基于XMLHttpRequest的异步请求。当客户端发起跨域请求时,服务器需要明确告诉客户端哪些资源不能发送。

      4. JSONP(JSON with Padding):JSONP是一种在JavaScript中嵌套回调函数的跨域技术,可以跨越浏览器的同源策略,允许服务器在发起跨域请求时传递一个回调函数。但是,当客户端发送的参数被浏览器截断时,JSONP可能会导致无法正确解析请求参数,从而无法正确解析请求的资源。

      5. CORS with credentials(CORS with credentials):这是一种在JavaScript中使用credentials属性发送CORS请求的技术,允许服务器在发起跨域请求时发送凭据。客户端发送的请求中包含凭据后,服务器在响应中设置响应头的Access-Control-Allow-Origin字段为包含请求头的域名和HTTP协议。

      6. WebSocket:WebSocket是一种全双工的长连接协议,可以通过TCP协议进行通信,即使两个节点之间存在跨域限制,WebSocket也可以实现实时通信,且无需考虑同源策略。

      在解决跨域问题时,通常需要根据具体的浏览器和服务器环境来选择合适的解决方案。以下是一些常见的解决跨域问题的方法:

      • 使用CORS with credentials:在客户端发送跨域请求时,使用credentials属性发送凭据,服务器在响应中设置响应头的Access-Control-Allow-Origin字段为包含请求头的域名和HTTP协议。
      • 使用JSONP:在客户端发送JSONP请求时,使用JSON.stringify函数将请求参数转化为JSON字符串,服务器在响应中设置响应头的Access-Control-Allow-Origin字段为包含请求头的域名和HTTP协议。
      • 使用Proxy服务:在服务器端设置代理服务器,代理服务器可以代理跨域请求,将请求转发到安全的服务器端进行处理。
      • 使用WebSocket:在服务器端设置WebSocket服务器,WebSocket服务器可以进行双向通信,即使两个节点之间存在跨域限制,也可以实现实时通信。

      需要注意的是,解决跨域问题时,应遵循相关的HTTP协议规定和安全性规范,避免使用不可信的HTTP方法(如GET、POST等)和参数,以及避免使用跨站脚本(XSS)攻击。在开发过程中,应使用前端的路由和资源定位功能,确保客户端和服务器端的资源是同源的,从而减少跨域问题的影响。

    • 妓多不压身 普通会员 2楼

      在前端开发中,跨域问题主要指的是由于浏览器对不同域名和协议的处理机制不同,导致客户端和服务器之间无法正常通信的问题。常见的跨域问题包括:

      1. Origin Access Policy (OAP):OAP是浏览器在发送请求之前,通过协商服务器端的协议和URL来决定是否允许发送请求的技术。如果服务器不允许客户端发起请求,或者服务器设置了不允许跨域的响应头,那么浏览器将无法发送请求。

      2. CORS(Cross-Origin Resource Sharing):CORS是一种允许服务器向其他域名发送资源的技术。当客户端发起一个跨域请求时,服务器会检查请求头的Origin属性,如果请求的源来自允许跨域的服务器,则允许请求通过;否则,服务器将拒绝请求,返回一个403 Forbidden状态码。

      3. Same Origin Policy(SOP):SOP是浏览器内部定义的一种强制性跨域策略,允许同源策略下的资源传输,但不包括JSONP、XMLHttpRequest等基于XMLHttpRequest的异步请求。当客户端发起跨域请求时,服务器需要明确告诉客户端哪些资源不能发送。

      4. JSONP(JSON with Padding):JSONP是一种在JavaScript中嵌套回调函数的跨域技术,可以跨越浏览器的同源策略,允许服务器在发起跨域请求时传递一个回调函数。但是,当客户端发送的参数被浏览器截断时,JSONP可能会导致无法正确解析请求参数,从而无法正确解析请求的资源。

      5. CORS with credentials(CORS with credentials):这是一种在JavaScript中使用credentials属性发送CORS请求的技术,允许服务器在发起跨域请求时发送凭据。客户端发送的请求中包含凭据后,服务器在响应中设置响应头的Access-Control-Allow-Origin字段为包含请求头的域名和HTTP协议。

      6. WebSocket:WebSocket是一种全双工的长连接协议,可以通过TCP协议进行通信,即使两个节点之间存在跨域限制,WebSocket也可以实现实时通信,且无需考虑同源策略。

      在解决跨域问题时,通常需要根据具体的浏览器和服务器环境来选择合适的解决方案。以下是一些常见的解决跨域问题的方法:

      • 使用CORS with credentials:在客户端发送跨域请求时,使用credentials属性发送凭据,服务器在响应中设置响应头的Access-Control-Allow-Origin字段为包含请求头的域名和HTTP协议。
      • 使用JSONP:在客户端发送JSONP请求时,使用JSON.stringify函数将请求参数转化为JSON字符串,服务器在响应中设置响应头的Access-Control-Allow-Origin字段为包含请求头的域名和HTTP协议。
      • 使用Proxy服务:在服务器端设置代理服务器,代理服务器可以代理跨域请求,将请求转发到安全的服务器端进行处理。
      • 使用WebSocket:在服务器端设置WebSocket服务器,WebSocket服务器可以进行双向通信,即使两个节点之间存在跨域限制,也可以实现实时通信。

      需要注意的是,解决跨域问题时,应遵循相关的HTTP协议规定和安全性规范,避免使用不可信的HTTP方法(如GET、POST等)和参数,以及避免使用跨站脚本(XSS)攻击。在开发过程中,应使用前端的路由和资源定位功能,确保客户端和服务器端的资源是同源的,从而减少跨域问题的影响。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部