首页 > 其他分享 >nextjs14 跨域该如何处理

nextjs14 跨域该如何处理

时间:2024-08-07 15:40:01浏览次数:10  
标签:Control 跨域 处理 nextjs14 next Access api key config

next.config.jsnext.config.mjs他有什么区别

next.config.js:

  • 使用的是 CommonJS 模块系统
  • 这是 Next.js 默认的配置文件格式,也是大多数情况下使用的格式。
  • 使用 require 语法导入模块,使用 module.exports 导出对象。

next.config.mjs:

  • 使用的是 ES Modules (ESM) 模块系统
  • 这是较新的模块系统,它提供了更现代化的语法和功能。
  • 使用 import 语法导入模块,使用 export 语法导出对象。

解决方法

我项目是next.config.mjs原理都差不多一样了

Config 配置

  • next.config.mjs
/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: false, // 严格模式
};

// 请求头配置
nextConfig.headers = async  () => {
  return [
    {
      source: '/api/:path*',
      headers: [
        { key: 'Access-Control-Allow-Credentials', value: 'true' },
        { key: 'Access-Control-Allow-Origin', value: '*' },
        { key: 'Access-Control-Allow-Methods', value: 'GET,OPTIONS,PATCH,DELETE,POST,PUT' },
      ]
    }
  ]
}

// 跨域配置
nextConfig.rewrites = async () => {
  return [
    {
      source: '/api/:path*', // ✨
      destination: 'https://api.google.com/:path*',
    },
  ]
}

export default nextConfig;
  • next.config.js
module.exports = {
  async rewrites() {
    return [
      {
        source: '/api/:path*', // ✨
        destination: 'https://api.google.com/:path*'
      }
    ];
  },
  async headers() {
    return [
      {
        // matching all API routes
        source: '/api/:path*',
        headers: [
          { key: 'Access-Control-Allow-Credentials', value: 'true' },
          { key: 'Access-Control-Allow-Origin', value: '*' },
          { key: 'Access-Control-Allow-Methods', value: 'GET,OPTIONS,PATCH,DELETE,POST,PUT' },
          { key: 'Access-Control-Allow-Headers', value: 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version' },
        ],
      },
    ];
  },
}

axios 配置

我这里用的是axios

  • axios.ts
import Axios, {
  type AxiosInstance,
  type AxiosRequestConfig,
  type CustomParamsSerializer
} from "axios";

// 相关配置请参考:www.axios-js.com/zh-cn/docs/#axios-request-config-1
const defaultConfig: AxiosRequestConfig = {
  baseURL:'/api', // ✨ 地址就这个了
  // 请求超时时间
  timeout: 10000,
  headers: {
    // Accept: "application/json, text/plain, */*",
    // "Content-Type": "application/json",
    // "X-Requested-With": "XMLHttpRequest"
  },
};

参考

  • 其他执行百度谷歌

标签:Control,跨域,处理,nextjs14,next,Access,api,key,config
From: https://www.cnblogs.com/tsalita/p/18347132

相关文章

  • (全网最详细的可运行的人流统计程序)基于OpenCV的实时视频处理系统
    OpenCV人脸检测OpenCV提供了多种人脸检测方法,包括基于Haar级联的传统方法和基于深度学习的现代方法。Haar级联是一种经典的机器学习算法,适用于实时应用,因为它可以快速处理图像。级联(Cascade)结构:Cascade分类器由多个简单的分类器组成,这些分类器按照一定的顺序级联起来。每个......
  • 使用IText7和miniExcel处理pdf并输出内容
    使用框架:.net8.0、winform操作系统:windows11编译器:vs2022内容:使用iText7、miniExcel,介绍如何简单读取pdf文件文字内容,并做处理后输出至excel文件中秉承着一贯的风格,还是只讲操作,囫囵吞枣就是要讲究一个稳准狠......
  • 学懂C++(七): C++错误处理机制 -- 异常
    目录前言一、C语言传统的处理错误的方式二、C++异常的概念三、异常的使用3.1异常的抛出和匹配原则3.2在函数调用链中异常栈展开匹配原则3.3异常的重新抛出3.4异常规范四、自定义异常体系五、异常的优缺点优点缺点结论前言        C++提供了一......
  • 图像识别与处理之Opencv——Mat_类与Mat 类的内存管理
    Mat_类Mat_类是对Mat类的一个包装,其定义如下点击查看代码template<typename_Tp>classMat_:publicMat{public://只定义了几个方法//没有定义新的属性};这是一个非常轻量级的包装,既然已经有Mat类,为何还要定义一个Mat_类?下面我们看这段代码:点击查看代码Ma......
  • Python从0到100(五十):深入理解Django ORM与事务处理
    前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知......
  • 4、Flink SQL 与 DataStream API 集成处理 Insert-Only 流详解
    处理Insert-Only流StreamTableEnvironment提供以下方法来从DataStream转换和转换到DataStream:fromDataStream(DataStream):将insert-only和任意类型的流转换为表,默认情况下不传播事件时间和水印。fromDataStream(DataStream,Schema):将insert-only和任意类型......
  • 使用令牌的 Paytabs 定期付款请求给出 [422 - 无法处理您的请求] 错误
    我通过PaytabsTokenization方法创建了一个令牌,然后使用生成的令牌再次请求tran_class:recurring但我得到{'code':422,'message':'Unabletoprocessyourrequest','trace':'PMNT0102.65DCFAF6.0002C7A0'}作为响应第一次付款......
  • 双端口RAM与多模块处理器
    多模块处理器多模块存储器是一种空间并行技术,利用多个结构完全相同的存储模块的并行工作来提高存储器的吞吐率。常用的有单体多字存储器和多体低位交叉存储器。CPU的速度比存储器快得多,若同时从存储器中取出n条指令,就可以充分利用CPU资源,提高运行速度。多体交叉存储器就是......
  • SQLServer 事务复制订阅节点非活跃状态(inactive)错误的处理:Error in replication::subs
    事务复制中订阅节点非活动( inactive)错误在SQLServer的事务复制模型中,会出现“订阅过期”的错误,相关订阅分发代理Job的典型错误如下:"AgentSQLNYC01-Onvoices-PubInvoicesInvoices-SQLNYC01-1353is retryingafteranerror. 211retriesattempted.Seeagentjobhistoryin......
  • 【ARM】v8架构programmer guide(2)_处理器及V8基础
    目录2.1ARMv8-A3.ARMv8的基础普通世界(Non-securestate)的特权组件:安全世界(Securestate)的特权组件:安全监视器(SecureMonitor):3.1executionstates执行状态3.2改变异常级别3.3改变executionstate(执行状态)2.1ARMv8-AARMv8-A引入众多改变:3.ARMv8......