简体   繁体   English

XMLHttpRequest否'访问控制允许来源'

[英]XMLHttpRequest No 'Access-Control-Allow-Origin'

I'm trying to make a login access with ionic 2 and angular 2. whenever I press the right details I get this error 我试图使用ionic 2和angular 2进行登录访问。每当按正确的详细信息时,都会出现此错误

 XMLHttpRequest cannot load http://adirzoari.16mb.com/newapi.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access.' 

I have also read some similar question on the website and still didn't get any solution for it. 我还在网站上阅读了类似的问题,但仍然没有任何解决方案。

this is my php file of login 这是我登录的php文件

        <?php
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");
    $conn = new mysqli("mysql.hostinger.co.uk", "a", "1234", "appd");

        //http://stackoverflow.com/questions/18382740/cors-not-working-php
        if (isset($_SERVER['HTTP_ORIGIN'])) {
            header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
            header('Access-Control-Allow-Credentials: true');
            header('Access-Control-Max-Age: 86400');    // cache for 1 day
        }

        // Access-Control headers are received during OPTIONS requests
        if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

            if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
                header("Access-Control-Allow-Methods: GET, POST, OPTIONS");         

            if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
                header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

            exit(0);
        }


        //http://stackoverflow.com/questions/15485354/angular-http-post-to-php-and-undefined
        $postdata = file_get_contents("php://input");
        if (isset($postdata)) {
            $request = json_decode($postdata);
            $username = $request->username;
            $password = $request->password;
                    $data = array();

            if ($password != "" && $username != "") {

            //echo "Server returns: " . $username . "Password is :" . $password;

                /*$arr=array();

                $st="select * from subnews order by SubID desc limit 10";
                $qr=$conn->query($st);
                while($row=$qr->fetch_assoc()){
                    $arr[]=$row;
                }
                echo json_encode($arr);*/

                $sel="SELECT id FROM users WHERE username='$username' AND password='$password'";
                $result=$conn->query($sel);
                $numrow=$result->num_rows;
                if($numrow == 1){ 
                            include 'tokengenerate.php'; 
                            $token=generateRandomString();    
                            $update="update users set token='$token' where username='$username' AND password='$password'";    
                            $qr=$conn->query($update);
                            if($qr){

                               $sel="SELECT id FROM users WHERE username='$username' AND password='$password'";
                               $query=$conn->query($sel);
                               while($row=$query->fetch_assoc(){
                                     $data[]=array(
                                     "name"->$row['username'],
                                     "token"->$row['token']
                                   );
                               echo json_encode($data);
                               }

                               } 
                }

            }
            else {
                header('HTTP/1.1 401 Unauthorized', true, 401);
            }
        }
        else {
            echo "Not called properly with username parameter!";
        }
    ?>  

This problem may result when you are making XmlHttpRequest from your domain to another and the browser is blocking because of cross origin for security purpose. 当您将XmlHttpRequest从您的域发送到另一个域并且浏览器由于出于安全目的的交叉源而被阻止时,可能会导致此问题。

If you are not making request to another check if you are not making request from a non-secured url to a secured url eg A request from http url to https, this can also cause it. 如果您不请求其他检查,或者不是从非安全URL到安全URL的请求,例如从http URL到https的请求,这也可能导致该错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Access-Control-Allow-Origin 不允许 XMLHttpRequest - XMLHttpRequest is not allowed by Access-Control-Allow-Origin XMLHttpRequest &#39;Access-Control-Allow-Origin&#39; 错误 - XMLHttpRequest 'Access-Control-Allow-Origin' Error XMLHttpRequest:Access-Control-Allow-Origin不允许 - XMLHttpRequest : Not allowed by Access-Control-Allow-Origin XMLHttpRequest错误:Access-Control-Allow-Origin不允许起源 - XMLHttpRequest error: Origin not allowed by Access-Control-Allow-Origin XMLHttpRequest无法加载Access-Control-Allow-Origin不允许使用Origin - XMLHttpRequest cannot load Origin is not allowed by Access-Control-Allow-Origin Access-Control-Allow-Origin不允许XMLHttpRequest Origin - XMLHttpRequest Origin is not allowed by Access-Control-Allow-Origin 使用 XMLHttpRequest 不断收到“访问控制允许来源”错误 - Keep getting No 'Access-Control-Allow-Origin' error with XMLHttpRequest JavaScript - XMLHttpRequest,Access-Control-Allow-Origin错误 - JavaScript - XMLHttpRequest, Access-Control-Allow-Origin errors 无法为No&#39;Access-Control-Allow-Origin&#39;标头加载XMLHttpRequest - XMLHttpRequest cannot load for No 'Access-Control-Allow-Origin' header XMLHttpRequest 无法加载 - Meteor 和 FSCollection 没有“Access-Control-Allow-Origin” - XMLHttpRequest cannot load - No 'Access-Control-Allow-Origin' with Meteor & FSCollection
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM