AJAX跨域轻松配置nginx允许多个域名跨域访问

阅读:393 2019-03-19 15:26:48 来源:csdn

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。所谓同源是指,域名,协议,端口相同。浏览器执行javascript脚本时,会检查这个脚本属于那个页面,如果不是同源页面,就不会被执行。同源策略的目的,是防止黑客做一些做奸犯科的勾当。比如说,如果一个银行的一个应用允许用户上传网页,如果没有同源策略,黑客可以编写一个登陆表单提交到自己的服务器上,得到一个看上去相当高大上的页面。黑客把这个页面通过邮件等发给用户,用户误认为这是某银行的主网页进行登陆,就会泄露自己的用户数据。而因为浏览器的同源策略,黑客无法收到表单数据。

我们在开发的过程很容易遇到跨域的问题,下面用nginx配置解决nginx多域名跨域的问题

当浏览器发起ajax请求到其他域名时,会出现跨域的问题,在nginx上的解决方案是配置access-control-allow-origin来解决,但是当我们需要允许多个域名跨域访问时却不好配置,可以用map来实现

map$http_origin$other_domain{

default0;

"~http://1.nbwiki.com"http://1.nbwiki.com;

"~http://2.nbwiki.com"http://2.nbwiki.com;

"~http://3.nbwiki.comhttp://3.nbwiki.com;

}

server{

listen80;

server_namewww.nbwiki.com;

root/nginx;

location/{

concaton;

concat_max_files20;

add_headercache-control

"public,max-age=3600";

}

location~*.(ttf|ttc|otf|eot|woff|font.css)

${add_headeraccess-control-allow-origin$other_domain;}

}

上面讲的是如何实现多个域名跨域,如果需要允许所有域名跨域的看直接写*星号就好了

相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服