问个JS跨域访问的问题,在线等

PALadinWIC 2019-03-20 10:43:20
用类似下列代码:

var script = document.createElement('script');
script.src = "http://aa.xx.com/js/*.js";
document.body.appendChild(script);

如果说http://aa.xx.com/js/*.js这一块返回的JS代码内部有xmlhttprequest跨域调用的话,会通过吗?在线等
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
讨厌走开啦 2019-03-20
  • 打赏
  • 举报
回复
浏览器会阻止所有不是指向本地域名的请求(action只是封装了一层,实质上还是个请求),让后台给个接口做请求转发吧,后台没有跨域问题。
PALadinWIC 2019-03-20
  • 打赏
  • 举报
回复
引用 1 楼 讨厌走开啦 的回复:
一样有跨域问题。


那如果我不用XHR对象,我直接通过提交表单的方式,象下面这样的代码:

var email = 'email';
var pwd = 'password';

var postForm = document.createElement("form");//表单对象
postForm.method="post" ;
postForm.action = 'login.jspx' ;

var emailInput = document.createElement("input") ; //email input
emailInput.setAttribute("name", "email") ;
emailInput.setAttribute("value", email);
postForm.appendChild(emailInput) ;
var pwdInput = document.createElement("input");// password input
pwdInput.setAttribute("name","password");
pwdInput.setAttribute("value",pwd);
postForm.appendChild(pwdInput);

document.body.appendChild(postForm) ;
postForm.submit() ;
document.body.removeChild(postForm) ;

在action属性那里指定一个跨域的页面,是不是就可以解决了啊?问题是如果服务器有返回数据,我在这里拿哪个对象接收啊?
讨厌走开啦 2019-03-20
  • 打赏
  • 举报
回复
一样有跨域问题。
槿畔 2019-03-20
  • 打赏
  • 举报
回复
建议使用nginx做代理跨域,我博客也有
天际的海浪 2019-03-20
  • 打赏
  • 举报
回复
引用 2 楼 PALadinWIC 的回复:
[quote=引用 1 楼 讨厌走开啦 的回复:] 一样有跨域问题。
那如果我不用XHR对象,我直接通过提交表单的方式,象下面这样的代码:

var email = 'email'; 
var pwd = 'password'; 
 
var postForm = document.createElement("form");//表单对象 
postForm.method="post" ; 
postForm.action = 'login.jspx' ; 
 
var emailInput = document.createElement("input") ; //email input 
emailInput.setAttribute("name", "email") ; 
emailInput.setAttribute("value", email); 
postForm.appendChild(emailInput) ; 
var pwdInput = document.createElement("input");// password input 
pwdInput.setAttribute("name","password"); 
pwdInput.setAttribute("value",pwd); 
postForm.appendChild(pwdInput); 
 
document.body.appendChild(postForm) ; 
postForm.submit() ; 
document.body.removeChild(postForm) ;
在action属性那里指定一个跨域的页面,是不是就可以解决了啊?问题是如果服务器有返回数据,我在这里拿哪个对象接收啊?[/quote] 这样是可以,但是postForm.action必须是绝对地址,如果是相对地址,是相对于当前页面,而不是相对http://aa.xx.com网站。 而且提交表单会跳转页面。当前页面也无法获取服务器返回的数据。 JS跨域访问一般只有用 jsonp 的数据形式,和用自己网站后台代理的ajax两种方式

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧