当前位置:

首页 > 编程开发 > ubuntu上js如何实现跨域请求

ubuntu上js如何实现跨域请求

本文目录

    在Ubuntu环境下用JavaScript处理跨域请求,其实是个老生常谈但又不得不面对的问题。通常有几种主流方案,下面逐一拆解,你会发现有些方法虽然古老但依然有效,有些则是现代开发的首选。 CORS(跨源资源共享) 这是目前最推荐、也最灵活的做法。核心思路很简单:在服务器端设置HTTP响应头 Acc

    在Ubuntu环境下用JavaScript处理跨域请求,其实是个老生常谈但又不得不面对的问题。通常有几种主流方案,下面逐一拆解,你会发现有些方法虽然古老但依然有效,有些则是现代开发的首选。

    ubuntu上js如何实现跨域请求

    1. CORS(跨源资源共享)

      这是目前最推荐、也最灵活的做法。核心思路很简单:在服务器端设置HTTP响应头 Access-Control-Allow-Origin,明确告诉浏览器哪些外部域可以访问资源。比如你有一个Node.js服务器,用Express框架,可以这样配置:

      const express = require('express');
      const app = express();
      
      app.use((req, res, next) => {
        res.header('Access-Control-Allow-Origin', '*'); // 或者指定一个域,如 'http://example.com'
        res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
        next();
      });
      
      app.get('/data', (req, res) => {
        res.json({ message: 'This is data from the server.' });
      });
      
      app.listen(3000, () => {
        console.log('Server running on port 3000');
      });
      

      客户端这边,用原生的 fetch 或 XMLHttpRequest 发起请求就行,几乎不需要额外处理:

      fetch('http://localhost:3000/data')
        .then(response => response.json())
        .then(data => console.log(data))
        .catch(error => console.error('Error:', error));
      
    2. JSONP(仅限GET请求)

      这是一项比较“古老”的技术,但碰上某些老系统或无法修改服务器配置的场景,它依然是个保底选择。原理很简单: