跨域问题的本质与产生原因
跨域(Cross-Origin)指浏览器出于安全考虑,限制从一个源(协议+域名+端口)加载的文档或脚本与另一个源的资源进行交互。同源策略(Same-Origin Policy)是浏览器的核心安全机制,它要求请求的协议、域名和端口完全一致才允许访问。
常见的跨域场景包括:
- 前端域名
https://example.com请求后端https://api.example.com - 开发时本地
http://localhost:3000访问测试环境http://test.example.com - 使用第三方 API 如支付、地图服务时
JSONP 实现跨域请求
JSONP(JSON with Padding)利用 <script> 标签不受同源策略限制的特性实现跨域。服务端返回一段可执行的 JavaScript 代码,前端通过回调函数处理数据。
前端实现示例:
function handleResponse(data) {
console.log('const script = document.createElement('script');
script.src = 'https://api.example.com/data?callback=handleResponse';
document.body.appendChild(script);
服务端响应示例(Node.js):
app.get('/data', (req, res) => {
const data = { key: 'value' };
res.jsonp(data); // 或手动拼接
// res.send(`${req.query.callback}(${JSON.stringify(data)})`);
});
CORS 标准解决方案
跨域资源共享(CORS)是 W3C 标准,通过 HTTP 头控制跨域访问。服务端设置 Access-Control-Allow-Origin 等头部实现授权。
简单请求示例:
GET /data HTTP/1.1
Origin: https://example.com
HTTP/1.1 200 OK
Access-Control-Allow-Origin: https://example.com
预检请求处理(Node.js):
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', 'https://example.com');
res.setHeader('Access-Control-Allow-Methods', 'GET,POST,OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
if (req.method === 'OPTIONS') return res.sendStatus(200);
next();
});
代理服务器中转方案
通过同域服务器代理转发请求可绕过浏览器限制。适用于无法修改服务端配置的场景。
Nginx 配置示例:
location /api/ {
proxy_pass https://api.example.com/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
Node.js 中间件代理:
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
app.use('/api', createProxyMiddleware({
target: 'https://api.example.com',
changeOrigin: true,
pathRewrite: { '^/api': '' }
}));
WebSocket 跨域通信
WebSocket 协议不受同源策略限制,但服务端仍需验证 Origin 头部确保安全。
客户端连接示例:
const socket = new WebSocket('wss://echo.websocket.org');
socket.onmessage = (event) => {
console.log('Message:', event.data);
};
服务端验证(Node.js + ws 库):
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws, req) => {
const origin = req.headers.origin;
if (!validOrigins.includes(origin)) {
return ws.close();
}
// 处理正常连接...
});
PostMessage 跨窗口通信
window.postMessage 允许不同源的窗口间安全通信,需配合事件监听使用。
父窗口发送消息:
const iframe = document.querySelector('iframe');
iframe.contentWindow.postMessage('Hello', 'https://target-origin.com');
子窗口接收处理:
window.addEventListener('message', (event) => {
if (event.origin !== 'https://trusted-origin.com') return;
console.log('Received:', event.data);
});
现代前端框架的跨域配置
开发环境下框架通常提供代理配置解决跨域问题。
Vue CLI 配置示例(vue.config.js):
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true
}
}
}
};
React 开发环境代理(package.json):
"proxy": "http://localhost:4000"
安全注意事项与最佳实践
- 精确设置 CORS 的
Access-Control-Allow-Origin,避免使用通配符* - 敏感操作应验证
Origin和Referer头部 - 对于 Cookie 跨域,需设置
Access-Control-Allow-Credentials: true并指定具体域名 - 考虑使用 CSRF Token 增强安全性
带凭证的请求示例:
fetch('https://api.example.com/data', {
credentials: 'include',
headers: { 'Authorization': 'Bearer token' }
});
服务端响应配置:
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
Vary: Origin
特殊场景处理方案
对于文件上传等复杂请求,需处理预检请求和特殊头部。
XMLHttpRequest 文件上传:
const xhr = new XMLHttpRequest();
xhr.open('POST', 'https://api.example.com/upload');
xhr.withCredentials = true;
xhr.setRequestHeader('X-Custom-Header', 'value');
xhr.onload = () => console.log(xhr.responseText);
xhr.send(formData);
服务端配置补充:
Access-Control-Allow-Headers: X-Custom-Header, Content-Type
Access-Control-Expose-Headers: X-Custom-Response
Access-Control-Max-Age: 86400
通过合理组合这些技术方案,可以覆盖绝大多数跨域场景的需求。实际选择时应考虑浏览器兼容性、安全要求和实施成本等因素。 每一次的坚持都是归于内心的真理,让我们在追求梦想的道路上,收获更多的自我与未来。磨砺内心的同时,学会享受沿途的风景,让挑战与理想交织,铸造出独特而美好的成长故事。每个微小的改变,都会在时间的积累中变得不凡,感谢生活中的每一份经历,因为它令我们成长。在孤独的时刻,学会与自己对话,让内心的声音引导我们找到方向,勇敢去迎接未来的每一个挑战。心中有爱,生活就会充满希望,愿我们在平凡的日子中,创造出不平凡的回忆与故事。
https://blog.csdn.net/2601_95544171/article/details/159123076
https://blog.csdn.net/2601_95544160/article/details/159123077
https://blog.csdn.net/2601_95544157/article/details/159123081
https://blog.csdn.net/cb6ffha7/article/details/159123079
https://blog.csdn.net/2601_95544126/article/details/159123083
https://blog.csdn.net/cxhs21jq/article/details/159123085
https://blog.csdn.net/z5b1y1ev/article/details/159123086
https://blog.csdn.net/u6cxg5np/article/details/159123093
https://blog.csdn.net/davaj9no/article/details/159123095
https://blog.csdn.net/m2aipwe3/article/details/159123096
https://blog.csdn.net/r5lf8dfo/article/details/159123097
https://blog.csdn.net/lgvgq8ah/article/details/159123098
https://blog.csdn.net/ozqd2lwv/article/details/159123100
https://blog.csdn.net/exo5hkp8/article/details/159123099
https://blog.csdn.net/2601_95544183/article/details/159123102
https://blog.csdn.net/t32bthti/article/details/159123103
https://blog.csdn.net/vzurhpe3/article/details/159123105
https://blog.csdn.net/wkdzrakc/article/details/159123106
https://blog.csdn.net/2601_95544194/article/details/159123108
https://blog.csdn.net/2601_95544191/article/details/159123109
https://blog.csdn.net/2601_95544187/article/details/159123111
https://blog.csdn.net/msf3fd27/article/details/159123112
https://blog.csdn.net/oqjqbcjl/article/details/159123114
https://blog.csdn.net/lqt05ci3/article/details/159123116
https://blog.csdn.net/lpftcg36/article/details/159123118
https://blog.csdn.net/s379peg8/article/details/159123120
https://blog.csdn.net/jvstbd7j/article/details/159123121
https://blog.csdn.net/2601_95544193/article/details/159123122
https://blog.csdn.net/t7gm5w7i/article/details/159123124
https://blog.csdn.net/wtx3s0di/article/details/159123127
https://blog.csdn.net/2601_95544117/article/details/159123107
https://blog.csdn.net/nzz6yaz7/article/details/159123126
https://blog.csdn.net/g937wh3g/article/details/159123129
https://blog.csdn.net/czby0ab4/article/details/159123130
https://blog.csdn.net/2601_95544203/article/details/159123133
https://blog.csdn.net/z5b1y1ev/article/details/159123137
https://blog.csdn.net/ozqd2lwv/article/details/159123140
https://blog.csdn.net/2601_95544183/article/details/159123142
https://blog.csdn.net/exo5hkp8/article/details/159123146
https://blog.csdn.net/u6cxg5np/article/details/159123145
https://blog.csdn.net/davaj9no/article/details/159123147
https://blog.csdn.net/m2aipwe3/article/details/159123150
https://blog.csdn.net/lqt05ci3/article/details/159123151
https://blog.csdn.net/msf3fd27/article/details/159123155
https://blog.csdn.net/wkdzrakc/article/details/159123156
https://blog.csdn.net/ay82dedw/article/details/159123159
https://blog.csdn.net/vzurhpe3/article/details/159123161
https://blog.csdn.net/v6x1hqjj/article/details/159123164
https://blog.csdn.net/lgvgq8ah/article/details/159123165
https://blog.csdn.net/2601_95544191/article/details/159123168
https://blog.csdn.net/kougzly1/article/details/159123170
https://blog.csdn.net/2601_95544193/article/details/159123171
https://blog.csdn.net/nzz6yaz7/article/details/159123172
https://blog.csdn.net/lpftcg36/article/details/159123173
https://blog.csdn.net/s379peg8/article/details/159123174
https://blog.csdn.net/g937wh3g/article/details/159123175
https://blog.csdn.net/2601_95544203/article/details/159123176
https://blog.csdn.net/wtx3s0di/article/details/159123178
https://blog.csdn.net/czby0ab4/article/details/159123180
https://blog.csdn.net/zqacf9x3/article/details/159123501
https://blog.csdn.net/2601_95532071/article/details/159123506
https://blog.csdn.net/2601_95511433/article/details/159123511
https://blog.csdn.net/u7cfv5ol/article/details/159123512
https://blog.csdn.net/fzue0sd1/article/details/159123520
https://blog.csdn.net/bg0mg6xc/article/details/159123526
https://blog.csdn.net/x0kykmx4/article/details/159123527
https://blog.csdn.net/ffqk79d0/article/details/159123531
https://blog.csdn.net/yd5omtce/article/details/159123537
https://blog.csdn.net/j6e1q6wl/article/details/159123545
https://blog.csdn.net/cihf1xzj/article/details/159123571
https://blog.csdn.net/nusggdlm/article/details/159123575
https://blog.csdn.net/2601_95544407/article/details/159123578
https://blog.csdn.net/rqm60m84/article/details/159123580
https://blog.csdn.net/pl8m4hxu/article/details/159123582
https://blog.csdn.net/h830jrkf/article/details/159123583
https://blog.csdn.net/2601_95531603/article/details/159123585
https://blog.csdn.net/nr5cyj65/article/details/159123586
https://blog.csdn.net/2601_95531534/article/details/159123587
https://blog.csdn.net/qtrufjez/article/details/159123588
https://blog.csdn.net/wjwyibd6/article/details/159123589
https://blog.csdn.net/2601_95542862/article/details/159123590
https://blog.csdn.net/e7x7tdnr/article/details/159123593
https://blog.csdn.net/xk0fh3bp/article/details/159123595
https://blog.csdn.net/2601_95544405/article/details/159123596
https://blog.csdn.net/cga1oe8m/article/details/159123599
https://blog.csdn.net/xya1e1uc/article/details/159123600
https://blog.csdn.net/2601_95531529/article/details/159123601
https://blog.csdn.net/w5vaz749/article/details/159123603
https://blog.csdn.net/anz51nrc/article/details/159123602
https://blog.csdn.net/dqnrbuc4/article/details/159123605
https://blog.csdn.net/v93qa6ra/article/details/159123606
https://blog.csdn.net/2601_95544402/article/details/159123608
https://blog.csdn.net/u3gsr1wh/article/details/159123610
https://blog.csdn.net/smh52gq4/article/details/159123612
https://blog.csdn.net/njbtqilp/article/details/159123611
https://blog.csdn.net/xdiy5vd3/article/details/159123614
https://blog.csdn.net/2601_95544411/article/details/159123615
https://blog.csdn.net/2601_95531553/article/details/159123616
https://blog.csdn.net/b78w6etk/article/details/159123617
https://blog.csdn.net/qpd7z882/article/details/159123618
https://blog.csdn.net/eaj8hxmo/article/details/159123619
https://blog.csdn.net/2601_95531580/article/details/159123620
https://blog.csdn.net/tpxoc7zx/article/details/159123624
https://blog.csdn.net/e5ay6fmf/article/details/159123621
https://blog.csdn.net/2601_95531581/article/details/159123625
https://blog.csdn.net/l91ra0bm/article/details/159123627
https://blog.csdn.net/rnmfwv5v/article/details/159123628
https://blog.csdn.net/2601_95544409/article/details/159123629
https://blog.csdn.net/xkjrsg4l/article/details/159123630
https://blog.csdn.net/2601_95542949/article/details/159123631
https://blog.csdn.net/uj0ckzdx/article/details/159123634
https://blog.csdn.net/c7twvrzt/article/details/159123633
https://blog.csdn.net/2601_95531694/article/details/159123635
https://blog.csdn.net/2601_95542923/article/details/159123636
https://blog.csdn.net/2601_95531730/article/details/159123637
https://blog.csdn.net/l988a3l8/article/details/159123638
https://blog.csdn.net/ncjuxpl6/article/details/159123640
https://blog.csdn.net/2601_95531692/article/details/159123641
https://blog.csdn.net/b53178mk/article/details/159123642
https://blog.csdn.net/otlswpam/article/details/159123643
https://blog.csdn.net/rbt0oqxw/article/details/159123644
https://blog.csdn.net/ofz7cs6s/article/details/159123646
https://blog.csdn.net/nifzjojx/article/details/159123645
https://blog.csdn.net/2601_95531625/article/details/159123648
https://blog.csdn.net/wszgrqy4/article/details/159123649
https://blog.csdn.net/2601_95532074/article/details/159123650
https://blog.csdn.net/s2px677q/article/details/159123652
https://blog.csdn.net/2601_95544457/article/details/159123653
https://blog.csdn.net/lsed8w9i/article/details/159123654
https://blog.csdn.net/okti60gq/article/details/159123655
https://blog.csdn.net/2601_95531648/article/details/159123651
https://blog.csdn.net/2601_95531674/article/details/159123657
https://blog.csdn.net/2601_95511328/article/details/159123658
https://blog.csdn.net/fzjbcd4u/article/details/159123659
https://blog.csdn.net/2601_95511507/article/details/159123660
https://blog.csdn.net/2601_95531707/article/details/159123661
https://blog.csdn.net/2601_95542921/article/details/159123662
https://blog.csdn.net/p0gfroea/article/details/159123663
https://blog.csdn.net/p2fdvg3w/article/details/159123664
https://blog.csdn.net/2601_95532071/article/details/159123665
https://blog.csdn.net/tqo1q1sc/article/details/159123667
https://blog.csdn.net/gb4g6ad2/article/details/159123668
https://blog.csdn.net/urpdot72/article/details/159123669
https://blog.csdn.net/ffu2h3wh/article/details/159123666
https://blog.csdn.net/syqjlace/article/details/159123670
https://blog.csdn.net/slm2kegx/article/details/159123671
https://blog.csdn.net/dlvpqxfj/article/details/159123672
https://blog.csdn.net/g72t2zql/article/details/159123673
https://blog.csdn.net/kr54o1a3/article/details/159123674
https://blog.csdn.net/2601_95531882/article/details/159123675
https://blog.csdn.net/i99i16nl/article/details/159123676
https://blog.csdn.net/j4bqucvq/article/details/159123677
https://blog.csdn.net/2601_95531895/article/details/159123678
https://blog.csdn.net/f0uiuw56/article/details/159123679
https://blog.csdn.net/tidm8796/article/details/159123680
https://blog.csdn.net/2601_95531903/article/details/159123681
https://blog.csdn.net/jh5btt8a/article/details/159123683
https://blog.csdn.net/2601_95499067/article/details/159123682
https://blog.csdn.net/lga9dnw7/article/details/159123684
https://blog.csdn.net/vwv1dk33/article/details/159123685
https://blog.csdn.net/ds22hatk/article/details/159123686
https://blog.csdn.net/yrll0ymv/article/details/159123688
https://blog.csdn.net/o5fu14p2/article/details/159123689
https://blog.csdn.net/2601_95511133/article/details/159123693
https://blog.csdn.net/ezxopn3g/article/details/159123691
https://blog.csdn.net/gbor0d8l/article/details/159123692
https://blog.csdn.net/rra9u2aa/article/details/159123694
https://blog.csdn.net/2601_95544426/article/details/159123695
https://blog.csdn.net/ly1pbq31/article/details/159123696
https://blog.csdn.net/nk4js66m/article/details/159123697
https://blog.csdn.net/2601_95531700/article/details/159123700
https://blog.csdn.net/2601_95531550/article/details/159123699
https://blog.csdn.net/2601_95531901/article/details/159123701
https://blog.csdn.net/zqacf9x3/article/details/159123703
https://blog.csdn.net/jpa3n04f/article/details/159123702
https://blog.csdn.net/d0m8w3dx/article/details/159123704
https://blog.csdn.net/ymo54mrx/article/details/159123706
https://blog.csdn.net/2601_95531621/article/details/159123656
https://blog.csdn.net/nebzmch7/article/details/159123707
https://blog.csdn.net/2601_95511532/article/details/159123709
https://blog.csdn.net/2601_95543018/article/details/159123710
https://blog.csdn.net/2601_95531381/article/details/159123708
https://blog.csdn.net/ei1spnl7/article/details/159123711
https://blog.csdn.net/fzue0sd1/article/details/159123713
https://blog.csdn.net/aym487sw/article/details/159123714
https://blog.csdn.net/xrus51cx/article/details/159123716
https://blog.csdn.net/fn3dkgf8/article/details/159123715
https://blog.csdn.net/bg0mg6xc/article/details/159123717
https://blog.csdn.net/u7cfv5ol/article/details/159123718
https://blog.csdn.net/2601_95544437/article/details/159123720
https://blog.csdn.net/se5vltcc/article/details/159123722
https://blog.csdn.net/odzu4wpi/article/details/159123719
https://blog.csdn.net/fptu44yn/article/details/159123723
https://blog.csdn.net/klfiwozo/article/details/159123724
https://blog.csdn.net/kzx03606/article/details/159123726
https://blog.csdn.net/2601_95498611/article/details/159123728
https://blog.csdn.net/t9byt90o/article/details/159123729
https://blog.csdn.net/2601_95511778/article/details/159123730
https://blog.csdn.net/jrkacoua/article/details/159123732
https://blog.csdn.net/qe52lu2q/article/details/159123736
https://blog.csdn.net/afoyjn6k/article/details/159123737
https://blog.csdn.net/2601_95498777/article/details/159123734
https://blog.csdn.net/jsxffn0b/article/details/159123739
https://blog.csdn.net/2601_95511433/article/details/159123740
https://blog.csdn.net/ucc0hat3/article/details/159123741
https://blog.csdn.net/2601_95531617/article/details/159123742
https://blog.csdn.net/2601_95531534/article/details/159123745
https://blog.csdn.net/dqnrbuc4/article/details/159123752
https://blog.csdn.net/cga1oe8m/article/details/159123756
https://blog.csdn.net/rqm60m84/article/details/159123771
https://blog.csdn.net/2601_95544407/article/details/159123772
https://blog.csdn.net/pl8m4hxu/article/details/159123773
https://blog.csdn.net/nr5cyj65/article/details/159123774
https://blog.csdn.net/wjwyibd6/article/details/159123776
https://blog.csdn.net/2601_95542862/article/details/159123777
https://blog.csdn.net/h830jrkf/article/details/159123779
https://blog.csdn.net/nusggdlm/article/details/159123780
https://blog.csdn.net/zqe9zg1u/article/details/159123782
https://blog.csdn.net/2601_95544411/article/details/159123783
https://blog.csdn.net/2601_95544405/article/details/159123785
https://blog.csdn.net/nvl5riih/article/details/159123784
https://blog.csdn.net/2601_95531603/article/details/159123786
https://blog.csdn.net/e7x7tdnr/article/details/159123787
https://blog.csdn.net/w5vaz749/article/details/159123790
https://blog.csdn.net/u3gsr1wh/article/details/159123793
https://blog.csdn.net/xya1e1uc/article/details/159123794
https://blog.csdn.net/2601_95531529/article/details/159123792
https://blog.csdn.net/2601_95531702/article/details/159123795
https://blog.csdn.net/okti60gq/article/details/159123796
https://blog.csdn.net/l988a3l8/article/details/159123798
https://blog.csdn.net/2601_95544402/article/details/159123797
https://blog.csdn.net/anz51nrc/article/details/159123800
https://blog.csdn.net/2601_95542949/article/details/159123803
https://blog.csdn.net/b78w6etk/article/details/159123804
https://blog.csdn.net/le1z2svd/article/details/159123801
https://blog.csdn.net/smh52gq4/article/details/159123802
https://blog.csdn.net/xk0fh3bp/article/details/159123805
https://blog.csdn.net/disae2rn/article/details/159123806
https://blog.csdn.net/p0gfroea/article/details/159123807
https://blog.csdn.net/fzjbcd4u/article/details/159123809
https://blog.csdn.net/2601_95531903/article/details/159123810
https://blog.csdn.net/c7twvrzt/article/details/159123811
https://blog.csdn.net/tpxoc7zx/article/details/159123812
https://blog.csdn.net/wvcvtekw/article/details/159123813
https://blog.csdn.net/l91ra0bm/article/details/159123815
https://blog.csdn.net/qpd7z882/article/details/159123814
https://blog.csdn.net/xkjrsg4l/article/details/159123816
https://blog.csdn.net/2601_95511133/article/details/159123817
https://blog.csdn.net/2601_95531719/article/details/159123818
https://blog.csdn.net/2601_95511532/article/details/159123819
https://blog.csdn.net/v93qa6ra/article/details/159123821
https://blog.csdn.net/tidm8796/article/details/159123820
https://blog.csdn.net/2601_95531692/article/details/159123822
https://blog.csdn.net/2601_95544437/article/details/159123823
https://blog.csdn.net/gbor0d8l/article/details/159123824
https://blog.csdn.net/ei1spnl7/article/details/159123825
https://blog.csdn.net/xdiy5vd3/article/details/159123826
https://blog.csdn.net/o5fu14p2/article/details/159123827
https://blog.csdn.net/2601_95531553/article/details/159123828
https://blog.csdn.net/conjbq1j/article/details/159123829
https://blog.csdn.net/ffu2h3wh/article/details/159123830
https://blog.csdn.net/2601_95531550/article/details/159123831
https://blog.csdn.net/tqo1q1sc/article/details/159123832
https://blog.csdn.net/2601_95531381/article/details/159123835
https://blog.csdn.net/f0uiuw56/article/details/159123834
https://blog.csdn.net/jpa3n04f/article/details/159123837
https://blog.csdn.net/2601_95531730/article/details/159123840
https://blog.csdn.net/2601_95543018/article/details/159123838
https://blog.csdn.net/kr54o1a3/article/details/159123843
https://blog.csdn.net/kzx03606/article/details/159123842
https://blog.csdn.net/vwv1dk33/article/details/159123844
https://blog.csdn.net/rbt0oqxw/article/details/159123846
https://blog.csdn.net/2601_95532074/article/details/159123847
https://blog.csdn.net/lgxn7ska/article/details/159123849
https://blog.csdn.net/wszgrqy4/article/details/159123848
https://blog.csdn.net/ofz7cs6s/article/details/159123850
https://blog.csdn.net/syqjlace/article/details/159123851
https://blog.csdn.net/nifzjojx/article/details/159123853
https://blog.csdn.net/2601_95531670/article/details/159123852
https://blog.csdn.net/otlswpam/article/details/159123854
https://blog.csdn.net/ymo54mrx/article/details/159123857
https://blog.csdn.net/2601_95531648/article/details/159123859
https://blog.csdn.net/uj0ckzdx/article/details/159123860
https://blog.csdn.net/2601_95531895/article/details/159123858
https://blog.csdn.net/p2fdvg3w/article/details/159123863
https://blog.csdn.net/e5ay6fmf/article/details/159123865
https://blog.csdn.net/2601_95511778/article/details/159123864
https://blog.csdn.net/urpdot72/article/details/159123866
https://blog.csdn.net/g72t2zql/article/details/159123867
https://blog.csdn.net/2601_95544409/article/details/159123870
https://blog.csdn.net/2601_95531694/article/details/159123869
https://blog.csdn.net/gb4g6ad2/article/details/159123872
https://blog.csdn.net/arlje94s/article/details/159123874
https://blog.csdn.net/2601_95544457/article/details/159123873
https://blog.csdn.net/2601_95499067/article/details/159123875
https://blog.csdn.net/slm2kegx/article/details/159123876
https://blog.csdn.net/ezxopn3g/article/details/159123877
https://blog.csdn.net/m2bpakc5/article/details/159123878
https://blog.csdn.net/lsed8w9i/article/details/159123879
https://blog.csdn.net/2601_95531674/article/details/159123881
https://blog.csdn.net/2601_95531707/article/details/159123880
https://blog.csdn.net/i7gfzeoa/article/details/159123882
https://blog.csdn.net/2601_95531625/article/details/159123883
https://blog.csdn.net/ucc0hat3/article/details/159123884
https://blog.csdn.net/rra9u2aa/article/details/159123885
https://blog.csdn.net/aym487sw/article/details/159123889
https://blog.csdn.net/eaj8hxmo/article/details/159123890
https://blog.csdn.net/s2px677q/article/details/159123893
https://blog.csdn.net/2601_95511507/article/details/159123892
https://blog.csdn.net/2601_95531700/article/details/159123894
https://blog.csdn.net/2601_95498777/article/details/159123895
https://blog.csdn.net/i99i16nl/article/details/159123897
https://blog.csdn.net/fn3dkgf8/article/details/159123898
https://blog.csdn.net/klfiwozo/article/details/159123899
https://blog.csdn.net/d0m8w3dx/article/details/159123901
https://blog.csdn.net/wjmb60bu/article/details/159123900
https://blog.csdn.net/odzu4wpi/article/details/159123903
https://blog.csdn.net/fptu44yn/article/details/159123904
https://blog.csdn.net/nk4js66m/article/details/159123905
https://blog.csdn.net/afoyjn6k/article/details/159123906
https://blog.csdn.net/xrus51cx/article/details/159123907
https://blog.csdn.net/jsxffn0b/article/details/159123909
https://blog.csdn.net/2601_95498611/article/details/159123911
https://blog.csdn.net/p14y8ogi/article/details/159123913
https://blog.csdn.net/2601_95544426/article/details/159123917
https://blog.csdn.net/2601_95531617/article/details/159123919
https://blog.csdn.net/2601_95531726/article/details/159123924
https://blog.csdn.net/2601_95532094/article/details/159123925
https://blog.csdn.net/qbjfrlza/article/details/159123934
https://blog.csdn.net/n5mubjqw/article/details/159120323
https://blog.csdn.net/yyg2imb2/article/details/159120324
https://blog.csdn.net/2601_95531915/article/details/159120326
https://blog.csdn.net/a0ot5916/article/details/159120338
https://blog.csdn.net/bjx9mjl4/article/details/159120362
https://blog.csdn.net/jhp19c2j/article/details/159120370
https://blog.csdn.net/2601_95542936/article/details/159120376
https://blog.csdn.net/yyg2imb2/article/details/159120379
https://blog.csdn.net/cpta25jk/article/details/159120380
https://blog.csdn.net/w5a3u897/article/details/159120384
https://blog.csdn.net/xeu6io75/article/details/159120386
https://blog.csdn.net/yegwzi15/article/details/159120389
https://blog.csdn.net/utvyoj62/article/details/159120392
https://blog.csdn.net/nhco2pyr/article/details/159120394
https://blog.csdn.net/2601_95531679/article/details/159120395
https://blog.csdn.net/c76ij32o/article/details/159120396
https://blog.csdn.net/k1zs5q6g/article/details/159120397
https://blog.csdn.net/lkogvob8/article/details/159120400
https://blog.csdn.net/slpg0vxs/article/details/159120401
https://blog.csdn.net/qilgzm15/article/details/159120403
https://blog.csdn.net/f2b7qpk0/article/details/159120402
https://blog.csdn.net/2601_95531341/article/details/159120404
https://blog.csdn.net/q9x938vc/article/details/159120399
https://blog.csdn.net/z5z4mxgp/article/details/159120405
https://blog.csdn.net/ujqop8a1/article/details/159120407
https://blog.csdn.net/szmp82ty/article/details/159120408
https://blog.csdn.net/w97rnxa1/article/details/159120409
https://blog.csdn.net/z2tyrvqy/article/details/159120410
https://blog.csdn.net/gqw6x8rr/article/details/159120411
https://blog.csdn.net/ml2jygm1/article/details/159120412
https://blog.csdn.net/v2e4u320/article/details/159120413
https://blog.csdn.net/apl1nixd/article/details/159120414
https://blog.csdn.net/kgy1r2c7/article/details/159120415
https://blog.csdn.net/mkyo0yva/article/details/159120416
https://blog.csdn.net/2601_95532065/article/details/159120417
https://blog.csdn.net/z9c22o1p/article/details/159120418
https://blog.csdn.net/2601_95542942/article/details/159120419
https://blog.csdn.net/fw8rein1/article/details/159120420
https://blog.csdn.net/cx1k9rv9/article/details/159120421
https://blog.csdn.net/kw400cw1/article/details/159120423
https://blog.csdn.net/hlwu3pd3/article/details/159120422
https://blog.csdn.net/kqaixsxp/article/details/159120424
https://blog.csdn.net/2601_95531909/article/details/159120425
https://blog.csdn.net/wjycfpcz/article/details/159120426
https://blog.csdn.net/u5m4el8t/article/details/159120428
https://blog.csdn.net/ndf71ce8/article/details/159120427
https://blog.csdn.net/ydn7or4t/article/details/159120429
https://blog.csdn.net/p3cjro6u/article/details/159120430
https://blog.csdn.net/cee1ugb7/article/details/159120431
https://blog.csdn.net/bppg64wr/article/details/159120432
https://blog.csdn.net/vauz3hmu/article/details/159120433
https://blog.csdn.net/vcmagrh4/article/details/159120434
https://blog.csdn.net/gydv4t7f/article/details/159120435
https://blog.csdn.net/2601_95531712/article/details/159120436
https://blog.csdn.net/tcn1ph97/article/details/159120437
https://blog.csdn.net/bunce27k/article/details/159120438
https://blog.csdn.net/2601_95531910/article/details/159120439
https://blog.csdn.net/l3jgyygv/article/details/159120440
https://blog.csdn.net/ptzvgknn/article/details/159120442
https://blog.csdn.net/2601_95542990/article/details/159120443
https://blog.csdn.net/2601_95542993/article/details/159120445
https://blog.csdn.net/2601_95531666/article/details/159120448
https://blog.csdn.net/jecyqy4w/article/details/159120449
https://blog.csdn.net/nwq0pond/article/details/159120450
https://blog.csdn.net/2601_95531680/article/details/159120451
https://blog.csdn.net/f9y9pffp/article/details/159120453
https://blog.csdn.net/wykeqdu9/article/details/159120452
https://blog.csdn.net/z5ywzqw2/article/details/159120454
https://blog.csdn.net/gwsvka9d/article/details/159120455
https://blog.csdn.net/o1m7fb6n/article/details/159120456
https://blog.csdn.net/2601_95499167/article/details/159120457

71

被折叠的 条评论
为什么被折叠?



