今天遇到一个ajax跨域问题,下拉框的数据源要从一个接口获得,但是该接口被部署到另外一台服务器上,在本地可以通过http请求访问,并可以返回json的数据,但是放到页面中不可以获取到下拉框的值,发现chrome控制台中该请求成功,但是没有返回值,于是便遇到了跨域的问题,请教一同事,问题得到解决:
1.搭建nginx服务器
下载nginx,我用的是nginx1.0.0,下载之后放到一个目录中,修改其中的配置文件conf目录中的ngnix.conf文件
2.找到配置中的server{}标签,在里面的localtion/{}标签中添加一句
proxy_pass http://localhost:8080/;
添加后的整体效果为:
1 location / { 2 root html; 3 index index.html index.htm; 4 proxy_pass http://localhost:8080/; 5 }
其中第4行为新加入的
3.在该标签下自己新建一个标签,如下:
1 location /partner{ 2 proxy_pass http://10.23.3.31/partner; 3 }
这个proxy_pass http://10.23.3.31/partner就是你要访问的域
server标签的整体配置为:
1 server { 2 listen 80; 3 server_name localhost; 4 5 #charset koi8-r; 6 7 #access_log logs/host.access.log main; 8 9 location / { 10 root html; 11 index index.html index.htm; 12 proxy_pass http://localhost:8080/; 13 } 14 location /partner{ 15 proxy_pass http://10.23.3.31/partner; 16 } 17 18 #error_page 404 /404.html; 19 20 # redirect server error pages to the static page /50x.html 21 # 22 error_page 500 502 503 504 /50x.html; 23 location = /50x.html { 24 root html; 25 } 26 27 # proxy the PHP scripts to Apache listening on 127.0.0.1:80 28 # 29 #location ~ \.php$ { 30 # proxy_pass http://127.0.0.1; 31 #} 32 33 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 34 # 35 #location ~ \.php$ { 36 # root html; 37 # fastcgi_pass 127.0.0.1:9000; 38 # fastcgi_index index.php; 39 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 40 # include fastcgi_params; 41 #} 42 43 # deny access to .htaccess files, if Apache's document root 44 # concurs with nginx's one 45 # 46 #location ~ /\.ht { 47 # deny all; 48 #} 49 }
其中12、14、15、16行为自己手动添加的
修改完毕后,启动nginx.exe程序
注意,此时访问的路径会发生变化,不需要带端口号,如果之前的访问为:localhost:8080//oss-api-server...
现在需要改为:localhost//oss-api-server...即可得到从别的域中取回来的数据!
转自:http://www.cnblogs.com/ylee/archive/2013/04/27/3047371.html
相关推荐
nginx 配置跨域不生效 如下配置 server { listen 80; server_name localhost; # 接口转发 location /api/ { # 允许请求地址跨域 * 做为通配符 add_header 'Access-Control-Allow-Origin' '*'; # 设置请求...
那么如何在nginx上实现ajax跨域请求呢?要在nginx上启用跨域请求,需要添加add_header Access-Control*指令。如下所示: location /{ add_header 'Access-Control-Allow-Origin' 'http://other.subdomain.com'; add...
一、什么是跨域问题 在一个服务器A里放置了json文件,另一个服务器B想向A发送ajax请求,获取此文件,会发生错误。 Chrome提示: XMLHttpRequest cannot load ******. No 'Access-Control-Allow-Origin' header is ...
前言 最近在采用jquery ajax调用http请求时,发现了一系列问题: 如采用firebug调试API请求(这个API是自己服务器的应用),看到服务器明明返回200状态,response返回数据也是...后来才知道是跨域问题(CORS),因为
Ajax跨域问题详解,包括详解内容、java代码、nginx等详细信息,可以直接运行
本文给大家分享的是一个nginx服务器配置解决ajax的跨域问题的小技巧,非常的实用,有相同需求的小伙伴可以参考下
Nginx 实现AJAX跨域请求 AJAX从一个域请求另一个域会有跨域的问题。那么如何在nginx上实现ajax跨域请求呢?要在nginx上启用跨域请求,需要添加add_header Access-Control*指令。如下所示: location /{ add_header ...
前言 我们单位的架构是在api和js之间架构一个中间层(python编写),以实现后端渲染,登录状态判定,跨域转发api等功能。但是这样一个中间会使前端...解决跨域问题方法很多:反向代理,jsonp,Cross-Origin Resource
springboot做前后端分离,ajax跨域请求问题 前后端分离:即将后端服务层与前端展示层分别开发和部署,因而产生两个需要打包发布的项目, 将两个分别部署后,前端再去请求后端就会产生跨域请求的问题。 两种解决方案
2 原理:Nginx将不同域的HTTP服务、网站放入统一的域中,规避跨域问题。 不同的服务器位置于不同的域。JavaScript安全性不允许POST的跨域请求(GET可以与服务器配合使用JSONP,有些勉强)。SOAP只能使用POST请求,...
由于项目是前后端分离,API接口与Web前端 部署在不同站点当中,因此在前文当中WebApi Ajax 跨域请求解决方法(CORS实现)使用跨域处理方式处理而不用Jsonp的方式。 但是在一段时间后,发现一个很奇怪的问题,每次...
前言 Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。 本文将讲述如何使用 Nginx ...这在开发过程中会导致 跨域 问题,即在一个域名下的网页,是无法通过 Ajax 请求另
因为对前端不熟悉,以为用 ajax 就可以不需要 callback ,然而前端的同学说不跨域的情况下才不需要 callback ,让我在返回的 json 里加上。可是我刚刚学会了最基本的 spring-mvc 用法,根本不知道怎么加上 callback ...
最近写了一下前端的东西,在请求网络的时候,Ajax的跨域问题,要用nginx进行代理,才能访问到
何为跨域跨域session/cookie? 也就是第三方session/cookie。第一方session/cookie指的是访客当前访问的网站给访客的浏览器设置的seesion /cookie, 会被存储在访客的计算机上。第三方session/cookie指的是当前访问的...
前后端分离必定面临跨域问题,以下是两个跨域请求携带cookie的nginx服务,完美演示跨域请求携带cookie
主要介绍了前后端分离 vue+springboot 跨域 session+cookie失效问题的解决方法,解决过程也很简单 ,需要的朋友可以参考下