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 】
相关推荐:
linux top下的 minerd 木马清除方法
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
EditPlus中的正则表达式实战(6)
重庆市网站制作公司,重庆招聘网站哪个好?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
Angular 表单中正确绑定输入值以确保提交与验证正常工作
如何快速搭建高效服务器建站系统?
Laravel distinct去重查询_Laravel Eloquent去重方法
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
JavaScript数据类型有哪些_如何准确判断一个变量的类型
制作电商网页,电商供应链怎么做?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
如何在云指建站中生成FTP站点?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
如何在企业微信快速生成手机电脑官网?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
魔方云NAT建站如何实现端口转发?
如何快速搭建安全的FTP站点?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
如何在新浪SAE免费搭建个人博客?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
使用spring连接及操作mongodb3.0实例
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
如何快速搭建高效香港服务器网站?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
如何在宝塔面板中创建新站点?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
如何在万网利用已有域名快速建站?
如何在阿里云域名上完成建站全流程?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
*服务器网站为何频现安全漏洞?
网站制作企业,网站的banner和导航栏是指什么?
在线制作视频的网站有哪些,电脑如何制作视频短片?
Python进程池调度策略_任务分发说明【指导】
详解Huffman编码算法之Java实现
敲碗10年!Mac系列传将迎来「触控与联网」双革新
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
Android自定义listview布局实现上拉加载下拉刷新功能
Laravel模型事件有哪些_Laravel Model Event生命周期详解
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
html如何与html链接_实现多个HTML页面互相链接【互相】

