XMLHTTPRequest Access-Control-Allow-Origin

时间:2016-07-31 21:49:27

标签: javascript php mysql ajax google-maps-api-3

我正在尝试向php文件发出请求。我从Maps API中的函数中捕获经度和纬度,并使用AJAX将这些点保存在MySQL数据库中。

AJAX

 function salvaPonto(latitude, longitude){
            $.ajax({
              type: "GET",
              data: {latitude: latitude,longitude: longitude},
              url: "http://localhost/dados/salvaPonto.php",
              datatype: 'JSONp',
              success: function(data) {
                alert("ok");
              },
              error: function(data){
                alert("erro");
              }
          });
        }

PHP文件

<?php

    header("Access-Control-Allow-Origin", "*");
    error_reporting(0);
    $latitude = $_GET['latitude'];
    $longitude = $_GET['longitude'];

   $conn = mysql_connect('localhost', 'root', '') or die ('Erro de conexão com o banco de dados');
    mysql_select_db('app') or die ('Erro ao selecionar banco de dados');

    $myquery = "INSERT INTO pontos(latitude, longitude) VALUES ('".$latitude."', '".$longitude."');";

    $result = mysql_query($myquery) or die("Query error:".mysql_error());
    mysql_close($conn);

    echo 1;   


?>

错误:

  

XMLHttpRequest无法加载   http://localhost/dados/salvaPonto.php?latitude=-22&longitude=-43。没有   请求中存在“Access-Control-Allow-Origin”标头   资源。因此,不允许原点'null'访问。

1 个答案:

答案 0 :(得分:2)

Lucas你错误地使用了header功能,因此你的Access-Control-Allow-Origin没有正确设置。 header()接受标题名称和值作为一个字符串,而不是两个。变化:

header("Access-Control-Allow-Origin", "*");

要:

header('Access-Control-Allow-Origin: *');

See docs