用类似下列代码: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跨域调用的话,会通过吗?在线等

解决方案 »

  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属性那里指定一个跨域的页面,是不是就可以解决了啊?问题是如果服务器有返回数据,我在这里拿哪个对象接收啊?
      

  2.   

    浏览器会阻止所有不是指向本地域名的请求(action只是封装了一层,实质上还是个请求),让后台给个接口做请求转发吧,后台没有跨域问题。
      

  3.   


    那如果我不用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属性那里指定一个跨域的页面,是不是就可以解决了啊?问题是如果服务器有返回数据,我在这里拿哪个对象接收啊?这样是可以,但是postForm.action必须是绝对地址,如果是相对地址,是相对于当前页面,而不是相对http://aa.xx.com网站。
    而且提交表单会跳转页面。当前页面也无法获取服务器返回的数据。JS跨域访问一般只有用 jsonp 的数据形式,和用自己网站后台代理的ajax两种方式
      

  4.   

    建议使用nginx做代理跨域,我博客也有