1

ajaxポストリクエストを使用してリモートサーバーにデータを送信したいだけです。次のコードは IE では正常に動作しますが、chrome では動作しません。なんで ?「Origin http://localhost は Access-Control-Allow-Origin で許可されていません」問題とは? クロムでも動作させるにはどうすればよいですか。私を助けてください。

 var http = new ajaxRequest();
        var url = "http://abcd.abc.com/login";
        var params = "username=name&password=pass&id=12345";
        http.open("POST", url, true);

        //Send the proper header information along with the request
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.setRequestHeader("Content-length", params.length);
        http.setRequestHeader("Connection", "close");

        http.onreadystatechange = function() {
            //Call a function when the state changes.
            if(http.readyState == 4 && http.status == 200) {
                window.alert(http.responseText);
            }
        }
        http.send(params);


  function ajaxRequest(){
     var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
     if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
      for (var i=0; i<activexmodes.length; i++){
       try{
        return new ActiveXObject(activexmodes[i])
       }
       catch(e){
        //suppress error
       }
      }
     }
     else if (window.XMLHttpRequest) // if Mozilla, Safari etc
      return new XMLHttpRequest()
     else
      return false
    }
4

1 に答える 1

1

他のサーバーにAJAXリクエストを行うことは許可されていません。スクリプトは、AJAXリクエストを行うサーバーと同じドメインで実行する必要があります。ただし、そのサーバーで前述のAccess-Control-Allow-Originを使用して実行できる場合を除きます。

于 2012-10-12T21:40:07.817 に答える