ajax跨域问题如何解决


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

$.ajax({

type : "GET",

async : false,

url : "http://b.b.com:8080/B/FromAjaxservlet?userName=644064",

dataType : "json",

success : function(data) {

alert(data["userName"]);

},

error : function() {

alert('fail');

}

});

  

@WebServlet("/FromAjaxservlet")

public class FromAjaxservlet extends HttpServlet{

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

try {

//创建默认连接

CloseableHttpClient httpClient = HttpClients.createDefault();

//创建HttpGet对象,处理get请求,转发到A站点

HttpGet httpGet = new HttpGet("http://a.a.com:8080/A/FromServlet?userName="+req.getParameter("userName"));

                        //执行

CloseableHttpResponse response = httpClient.execute(httpGet);

int code = response.getStatusLine().getStatusCode();

//获取状态

System.out.println("http请求结果为:"+code);

if(code == 200){

                                //获取A站点返回的结果

String result = EntityUtils.toString(response.getEntity());

System.out.println(result);

                                //把结果返回给B站点

resp.getWriter().print(result);

}

response.close();

httpClient.close();

} catch (Exception e) {

}

}

}

解决方式4:使用nginx搭建企业级接口网关方式

www.a.a.com不能直接请求www.b.b.com的内容,可以通过nginx,根据同域名,但项目名不同进行区分。什么意思呢?这么说可能有点抽象。假设我们公司域名叫www.nginxtest.com

当我们需要访问www.a.a.com通过www.nginxtest.com/A访问,并通过nginx转发到www.a.a.com

当我们需要访问www.b.b.com通过www.nginxtest.com/B访问,并通过nginx转发到www.a.a.com

我们访问公司的域名时,是"同源"的,只是项目名不同,此时项目名的作用只是为了区分,方便转发。如果你还不理解的话,先看看我是怎么进行配置的:

1

2

3

4

5

6

7

8

9

10

11

12

server {

        listen       80;

        server_name  www.nginxtest.com;

        location /A {

    proxy_pass  http://a.a.com:81;

index  index.html index.htm;

        }

location /B {

    proxy_pass  http://b.b.com:81;

index  index.html index.htm;

        }

    }

我们访问以www.nginxtest.com开头且端口为80的网址,nginx将会进行拦截匹配,若项目名为A,则分发到a.a.com:81。实际上就是通过"同源"的域名,不同的项目名进行区分,通过nginx拦截匹配,转发到对应的网址。整个过程,两次请求,第一次请求nginx服务器,第二次nginx服务器通过拦截匹配分发到对应的网址。

相关免费学习推荐:javascript(视频)

以上就是ajax跨域问题如何解决的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

html5中利用postmessage实现ajax中的post跨域

什么是ajax跨域

ajax跨域问题如何解决

更多相关阅读请进入《ajax跨域》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...