我正在尝试编写一些代码,一旦按下按钮,它就会通过ajax将经度和经度坐标发送到test.php文件。我遇到的问题是它似乎不能调用test.php文件。
<button onClick="getLocation()">Join Me</button>
<p id="demo"></p>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function redirectToPosition(position) {
// ...
$.ajax({
type: "POST",
url: "http://www.domain.co.uk/test.php",
data: "lat="+position.coords.latitude+"&long="+position.coords.longitude,
});
}下面是test.php文件的内容。
$lat=(isset($_POST['lat']))?$_POST['lat']:'';
$long=(isset($_POST['long']))?$_POST['long']:'';
$to = 'lee@recruit-technology.co.uk';
$subject = 'the subject';
$message = "$lat; $long;";
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);发布于 2015-06-03 01:26:00
这里。我为你准备了一把小提琴。看起来您可能引用了错误的方法名称(getCurrentPosition与redirectToPosition)。如果不是这样,看起来您实际上从未调用过redirectToPosition(),这就是为什么该代码块从不执行的原因。
尝试编辑该小提琴,但更改实际的域URI。
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function getCurrentPosition(position) {
// ...
$.ajax({
type: "POST",
url: "http://www.domain.co.uk/test.php", // -> Actual domain here.
data: "lat="+position.coords.latitude+"&long="+position.coords.longitude
});
}http://jsfiddle.net/tcysvkfz/
无论如何,执行AJAX请求的方法在您的示例中永远不会被调用,这就是test.php永远不会被调用的原因。
https://stackoverflow.com/questions/30602538
复制相似问题