1.nginx配置文件增加响应头
在服务器端的nginx.conf中配置增加配置
1
2
3
4
5
6
7
|
http
{
.
.
.
.
.
.
add_header
Access
-
Control
-
Allow
-
Origin *
;
add_header
Access
-
Control
-
Allow
-
Headers
X
-
Requested
-
With
;
add_header
Access
-
Control
-
Allow
-
Methods
GET
,
POST
,
OPTIONS
;
.
.
.
.
.
.
}
|
这样就可以实现GET,POST,OPTIONS的跨域请求的支持
2.修改php代码加入响应头
例如,server.php 路径:http://www.264.cn/server.php
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
$ret
=
array
(
'name'
=
>
isset
(
$_POST
[
'name'
]
)
?
$_POST
[
'name'
]
:
''
,
'gender'
=
>
isset
(
$_POST
[
'gender'
]
)
?
$_POST
[
'gender'
]
:
''
)
;
header
(
'content-type:application:json;charset=utf8'
)
;
header
(
'Access-Control-Allow-Origin:*'
)
;
header
(
'Access-Control-Allow-Methods:POST'
)
;
header
(
'Access-Control-Allow-Headers:x-requested-with,content-type'
)
;
echo
json_encode
(
$ret
)
;
?>
|
3.修改客端的nginx配置,利用反向代理来实现
例如,www.redis.com.cn/html/request.html 想请求www.264.cn/api/msg?method=1¶=2;
1
2
3
4
5
6
7
|
var
url
=
'www.264.cn/api/msg?method=1¶=2';
$
.
ajax
(
{
type
:
"GET"
,
url
:
url
,
success
:
function
(
res
)
{
.
.
}
,
.
.
.
.
}
)
|
变成访问本地域名地址
1
2
3
4
5
6
7
8
|
var
url
=
'http://www.264.cn/api/msg?method=1¶=2';
var
proxyurl
=
'msg?method=1¶=2';
$
.
ajax
(
{
type
:
"GET"
,
url
:
proxyurl
,
success
:
function
(
res
)
{
.
.
}
,
.
.
.
.
}
)
|
通过nginx中增加location反向代理到服务器端
1
2
3
4
|
location
^
~
/
proxy
/
html
/
{
rewrite
^
/
proxy
/
html
/
(
.
*
)
$
/
$
1
break
;
proxy_pass
http
:
//www.redis.com.cn/api/;
}
|