使用额外标头阻止跨源请求

时间:2014-08-12 16:18:13

标签: php jquery sql cross-platform

我正在创建一个带有sql东西的应用程序,我正在使用在线数据库,如果我输入header("Access-Control-Allow-Origin: *");

,一切正常

但接下来的几行我也需要这个标题header('Content-Type', 'text/plain');

一旦我插入并运行我的html并运行此特定的php文件,我将收到此错误

错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://www.gamestopica.net/andrew/login.php. This can be fixed by moving the resource to the same domain or enabling CORS.

任何人都知道我应该怎么做才能在同一个php文件下安装那2个标题,而不会出现跨源错误?

我的php文件

<?php
    header("Access-Control-Allow-Origin: *");
    include_once('db.php');
    session_start(); 

    header('Content-Type', 'text/plain');

    $username = $_POST['username'];
    $password = $_POST['password'];
    $verify = 0;

$result = $db->query("SELECT * FROM `userdetails` WHERE `username` = '".$username."'")
or die("fail");

    if(mysqli_num_rows($result)>0)
    {
        $row = mysqli_fetch_array($result);
        $passwordDB = $row["Password"];
        if($password == $passwordDB)
        {
            $_SESSION['user'] = $username;
            $result2 = json_encode(
                array("type"=>"true", "username"=>$_SESSION['user'])
                ); 
                echo $result2;
        }
        else
        {
            $result2 = json_encode(
                array("type"=>"false")
                ); 
                echo $result2;
        }
    }
    else
    {
        $result2 = json_encode(
                array("type"=>"nothing")
                ); 
                echo $result2;
    }
?>

1 个答案:

答案 0 :(得分:0)

您对header()的调用不是该函数的有效语法。尝试更改:

header('Content-Type', 'text/plain'); 

header('Content-Type: text/plain'); 

并查看是否可以解决您的问题。