先来晒一下正确的配置代码
server {
listen 8082; //你**本地请求的端口**(随便设个端口地址就可以了,但是一定要跟下边跨域请求的端口保持一致)
server_name localhost; //你**本地请求的地址**
location / {
add_header 'Access-Control-Allow-Origin' '*';
proxy_pass http://localhost:8081/; //你**要请求的接口地址**
}
}
请求方式:
$.ajax({
//url: 'storelist.json',
url: 'http://localhost:8082/static/json/storelist.json', //**跨域请求的地址**注意,这里的8082跟上边的8082一定要一致,这里的localhost也要跟上边的本地请求地址保持一致(注意不是跟请求的接口地址一致)
type: "GET",
success: function (data) {
var result = JSON.stringify(data); //json对象转成字符串
$("#text").val(result);
}
});
http://127.0.0.1:8080/test.html //我的本地链接
接下来说一下遇到的坑:
首先,就是上边注释中重点提到的那两个8082,一开始我写成8080,死活都不成功,百度一番发现可能是接口被占用了(事实上我压根不知道在哪里被占用了),所以大家一定不要弄成8080或者80这样的常用端口,免得跟我一样呢踩坑,随便取个不常用的就可以了,只要两个地方保持一致就行。
其次,本地请求的地址要跟跨域请求的地址保持一致
最后,windows下的nginx不需要像网上那样动不动就重启关闭什么的,你启动了就可以了,修改了nginx.conf文件的配置后,只需要刷新代码页面就可以了。