nginx服务器通过配置来解决API的跨域问题

发布时间 - 2026-01-11 01:20:40    点击率:

前言

最近在采用jquery ajax调用http请求时,发现了一系列问题:

如采用firebug调试API请求(这个API是自己服务器的应用),看到服务器明明返回200状态,response返回数据也是json格式,但ajax返回的error。

在排除json数据格式不正确的原因之后,发现了ajax error函数返回“networkerror failed to execute ‘send' on ‘xmlhttprequest' failed to load ‘http //“ XMLHttpRequest.status=0,就是没有初始化。

后来才知道是跨域问题(CORS),因为程序调用的是远程服务器的API,服务器不允许跨域调用。如果只是简单的方法,只需要在程序的response添加支持跨域的header添加属性”Access-Control-Allow-Origin: * “即可。

如java 服务器代码:

yourownvariable.setHeader("Access-Control-Allow-Origin:", "origin url of your site");


yourownvariable.setHeader("Access-Control-Allow-Methods", "GET, POST,PUT");

如果是配置nginx服务器(如果是其他服务器,可以参考:I want to add CORS support to my server),需要在nginx.conf配置文件添加一下内容:

#
# Wide-open CORS config for nginx
#
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
#
# Tell client that this pre-flight info is valid for 20 days
#
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
}
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# java  # api  # nginx服务器  # nginx跨域配置  # nginx  # api服务器  # Nginx跨域使用字体文件的配置方法  # nginx服务器配置解决ajax的跨域问题  # Nginx配置跨域请求Access-Control-Allow-Origin * 详解  # nginx 配置跨域失效修复的方法示例  # 通过Nginx代理转发配置实现跨域的方法(API代理转发)  # nginx配置解决跨域访问的方法详解  # ubuntu nginx安装及服务配置跨域问题处理方式  # Nginx 跨域配置的具体实现  # Nginx 配置跨域的实现及常见问题解决  # 的是  # 发现了  # 只需  # 要在  # 才知道  # 这篇文章  # 谢谢大家  # 不正确  # 配置文件  # 数据格式  # 有疑问  # header  # code  # 是跨域  # status  # CORS  # Access  # yourownvariable  # plain  # setHeader 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 焦点电影公司作品,电影焦点结局是什么?  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel如何实现用户注册和登录?(Auth脚手架指南)  如何在万网自助建站平台快速创建网站?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  bing浏览器学术搜索入口_bing学术文献检索地址  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  linux写shell需要注意的问题(必看)  如何做网站制作流程,*游戏网站怎么搭建?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  浅谈Javascript中的Label语句  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在Windows服务器上快速搭建网站?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  网站建设要注意的标准 促进网站用户好感度!  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  网站优化排名时,需要考虑哪些问题呢?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  高端网站建设与定制开发一站式解决方案 中企动力  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  企业网站制作这些问题要关注  如何快速搭建高效WAP手机网站?  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  EditPlus中的正则表达式实战(5)  如何在腾讯云服务器快速搭建个人网站?  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  JavaScript如何实现路由_前端路由原理是什么  中国移动官方网站首页入口 中国移动官网网页登录  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  jQuery validate插件功能与用法详解  Android利用动画实现背景逐渐变暗  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  如何用VPS主机快速搭建个人网站?  如何用已有域名快速搭建网站?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程