在html文件中使用ajax访问我的服务器上的文件,为什么会报跨域,应该如何解决?
// 加载网络资源
function getPDBByURL() {
const element = document.querySelector('.viewer_3Dmoljs');
let config = { backgroundColor: "gray" };
let viewer = $3Dmol.createViewer( element, config );
let pdbUri = 'http://xxx/3dmol_pdb/t1.pdb';
$.ajax({
url: pdbUri,
type: 'GET',
beforeSend: function(xhr) {
// 设置请求头
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
},
success: function(data) {
let v = viewer;
v.addModel( data, "pdb" ); /* load data */
v.setStyle({}, {cartoon: {color: 'spectrum'}}); /* style all atoms */
v.zoomTo(); /* set camera */
v.render(); /* render scene */
v.zoom(1.2, 1000); /* slight zoom */
},
error: function(hdr, status, err) {
console.error( "Failed to load PDB " + pdbUri + ": " + err );
},
});
}
使用postman可以获取到数据:
希望能告诉我怎么样获取这个文件
需要给服务器配置跨域,且服务器不能设置为*。设置成动态变量,看我这个帖子。
ngnix:'Access-Control-Allow-Origin' '$http_origin'
https://segmentfault.com/a/1190000042508124