跨域请求问题

前端之家收集整理的这篇文章主要介绍了跨域请求问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

比如: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

原文链接:https://www.f2er.com/json/290131.html

猜你在找的Json相关文章