2016-07-31 147 views
-2

我正在嘗試請求一個PHP文件。我通過Maps API中的函數捕獲經度和緯度,並使用AJAX將這些點保存在MySQL數據庫中。XMLHTTPRequest訪問控制 - 允許來源

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 cannot load http://localhost/dados/salvaPonto.php?latitude=-22&longitude=-43 . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

+2

可能重複的[「否 '訪問控制允許來源' 標題存在於所請求的資源」](HTTP:/ /stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource) – geocodezip

+0

可能相關的問題:[XMLHttpRequest無法加載。請求的資源上沒有「Access-Control-Allow-Origin」標題。 Origin因此不被允許訪問](http://stackoverflow.com/questions/25445027/xmlhttprequest-cannot-load-no-access-control-allow-origin-header-is-present-o) – geocodezip

+0

請參閱[跨域請求在Javascript](https://jvaneyck.wordpress.com/2014/01/07/cross-domain-requests-in-javascript/) – geocodezip

回答

2

盧卡斯你濫用header函數,所以您的Access-Control-Allow-Origin沒有正確設置。 header()接受標題名稱和值作爲一個字符串,而不是兩個。變化:

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

到:

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

See docs

相關問題