我需要一些有关此代码的帮助,我发现了一些类似的问题:
jQuery 中的 Ajax 调用 - 未捕获的类型错误无法读取 null 的属性“错误”
但仍然无法正常工作,我正在使用 jquery (.ajax) 向服务器 (php) 发送和接收数据,当我在 .ajax 函数中的 url 处使用 localhost 时,它可以正常工作并接收我需要的数据,但是当我更改了它显示的服务器 ip 的 url:“未捕获的类型错误:无法读取未定义的属性“某些值” ”
jQuery代码:
$(document).on("ready",inicio);
function inicio(){
/*Change pages events*/
var buttonscan;
buttonscan = $('#button_scan');
buttonscan.on("click",solicitardatos);
}
function solicitardatos(){
var idscan = "001";
$.ajax({
type: 'post',
//with localhost works fine, this is the ip of my cpu when testing from
//other device 192.168.0.101
url: "http://192.168.0.101/server/info.php?jsoncallback=?",
data: {datos:idscan},
cache: false,
success: function(data) {
$('#button_scan').hide();
$('#page1').hide();
$('#page2').show();
$('#pl').html(data[0].pl);
$('#name').html(data[0].name);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error... " + textStatus + " " + errorThrown);
alert("Error... " + textStatus + " " + errorThrown);
},
dataType: 'json'
});
}
这是 PHP 服务器文件 (info.php)
<?php
header('Content-Type: text/javascript; charset=UTF-8');
error_reporting(E_ALL ^ E_NOTICE);
require("conexion.php");
$id = $_POST['datos'];
/*Here is all the sql statements, and the mysqli query*/
while ($fila = mysqli_fetch_array($peticion)) {
$resultado[] = array("pl"=>$fila['pl'],"name"=>$fila['name']);
}
mysqli_close($conexion);
//echo json_encode($resultado);
echo $_GET['jsoncallback'] . '(' . json_encode($resultado) . ');';
?>
因此,当我使用 url 设置 (localhost) 时,它可以工作,当我更改为服务器 ip (192.168.0.101) 时,它停止工作并显示:“Uncaught TypeError: Cannot read property 'pl' of undefined”
,我知道它正在工作的 ip,因为当我在浏览器上复制 192.168.0.101/server/info.php 时,它没有显示任何错误
谢谢,
现在我使用了一个位于云中的外部服务器,如果我在 info.php 中使用常量 $id = "001",它就可以工作,但是当我删除该常量并将 $id = $_POST['datos'] ,又是空的,所以我认为发送数据时有问题