angularjs - 跨域发布错误

时间:2016-01-22 04:27:50

标签: php mysql angularjs

我试图使用我的网站作为我的angularjs应用程序的mysql后端但是当我尝试将数据发布到服务器时我遇到了这个错误

  

XMLHttpRequest无法加载www.domain.com/backend_script.php。   No' Access-Control-Allow-Origin'标题出现在请求的上   资源。起源' 127.0.0.1:60728'因此是不允许的   访问。响应的HTTP状态代码为500。

(我删除了https://和东西,因为我的帖子链接太低了,无法发布链接)

我在域中的php文件顶部添加了这个只是为了测试但是它仍然无法使用标头集,这就是我的脚本的样子。

<?php
    require_once 'adb-functions.php';

    header('Access-Control-Allow-Origin: http://127.0.0.1:60728/');

    $data = json_decode(file_get_contents("php://input"));
    $q = trim($data->query);
    $all = $data->all;
    //print_r(2);
    function render($query)
    {
        global $q;

        $renderedQb = '';
        preg_match_all('/"(?:\\\\.|[^\\\\"])*"|\S+/', $q, $commands);
        //print_r($commands[0]);
        $commands = $commands[0];
        if($commands[0] ==="get"){
            if(trim($commands[1]) === "all") { 
                $renderedQ = "SELECT * FROM `".$commands[2]."`;"; 
                return $renderedQ;
            }
            elseif (!empty($commands[4])) {
                if($commands[4]==='spec')
                {
                    $renderedQ = "SELECT * FROM `".$commands[1]."` WHERE `".$commands[2]."`='".$commands[3]."';";
                    return $renderedQ;
                }
                else
                {
                    echo 'ERROR: Mismatch query template';
                }
            }
            else 
            {
               $renderedQ = 'SELECT * FROM `'.$commands[1].'` WHERE id='.$commands[2].';';
               return $renderedQ;
            }
        }
        else
        {
            return $query;
        }
    }

    try 
    {
        $query = $handler->query(render($q));
        if($query){

                if($all==true){
                    print_r(json_encode($query->fetchAll(PDO::FETCH_ASSOC)));
                }
                else
                {
                    print_r(json_encode($query->fetch(PDO::FETCH_ASSOC)));
                }

        }else{
            //echo 'Error';
        }
    } 
    catch (PDOException $e) 
    {
        echo $e;   
    }
?>

脚本的其余部分只是执行查询,该查询是从我在angularjs中生成的工厂函数发送的。

fact.get = function(query, all){ return $http.post('https://example.com/script.php', {'query': query, 'all': all}); };

有没有办法在angularjs中设置标题?甚至是一种完全不同的方式来实现这一目标?

0 个答案:

没有答案