加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

跨域请求问题

发布时间:2020-12-16 19:15:26 所属栏目:百科 来源:网络整理
导读:跨域请求,需要提供安全并且服务器认可的信息。 比如:A域名下的数据需要请求B域名下的一个方法,需要进行验证,或者可能需要获取B域名下cookie的某一个值,那么需要进行跨域请求。 如果我们使用普通的Ajax的json格式来进行请求,则会出现 XMLHttpRequest ca

跨域请求,需要提供安全并且服务器认可的信息。

比如:A域名下的数据需要请求B域名下的一个方法,需要进行验证,或者可能需要获取B域名下cookie的某一个值,那么需要进行跨域请求。

如果我们使用普通的Ajax的json格式来进行请求,则会出现


XMLHttpRequest cannot load http://zhl.study.com/cross-domain.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.


的错误,那么需要在服务器上加上:(背景是***的代码)

server
{
listen 80;
server_name zhl.study.com;
index index.html index.php;
root /var/www/study;
error_log logs/study_error.log debug;
access_log /var/log/nginx/www_access.log wwwlogs;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ .*.(php|php5)?$
{

add_header 'Access-Control-Allow-Origin' 'http://localhost';
add_header 'Access-Control-Allow-Credentials' 'true';


fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_intercept_errors on;
include fcgi.conf;
#log_by_lua_file conf/lua/stats/record.lua;
}
}

如果使用JSONP的方式则不需要添加上述***的代码区域


$.ajax({
url: 'http://zhl.study.com/diff_domain.php',
type: "GET",
dataType: 'jsonp',
jsonp:'callback',
timeout: 5000,
success: function (data) {
alert(data.name);

},
error: function(data){

}
})


在B域名下设置cookie,返回之中带有cookie的数据,即可。

参考文档:

http://api.jquery.com/jQuery.ajax/

http://www.w3cschool.cn/ajax_ajax.html


如果在A下设置cookies,需要到B域名下获取cookie,然后进行验证,此方法目前未能继续实现(A与B域名毫无关系,如果是一级和二级域名关系的除外),如果你已经实现此方法可以给我联系。Email:bieru52@aliyun.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读