jQuery AJAX请求结果未定义。
jQuery AJAX请求结果未定义。
我有一个由我的PHP返回的字符串。我通过$.ajax调用PHP脚本,并尝试将字符串放入一个全局变量中以进行进一步处理。它显示变量未定义。你能帮我吗?
(我使用dataType : "jsonp"
来避免这里回答的错误Ajax跨域请求被阻止:同源策略不允许读取远程资源)
我的javascript(Jquery, Ajax, ...)脚本
var my_data; function get_my_data(){ $.ajax({ type: 'GET', url: 'http://localhost:8012/My_PHP_scripts/test_1.php', dataType : "jsonp", crossDomain:true, success: function (my_data){ console.log(my_data); } }); } $( document ).ready(get_my_data);
PHP脚本
HTML代码
更新
PHP脚本
$name)); echo $encoded2; die( $encoded2 ); ?>
JS脚本
var my_data; function get_my_data(){ $.ajax({ type: 'GET', url: 'http://localhost:8012/My_PHP_scripts/test_1.php', dataType : "jsonp", crossDomain:true, success: function (result){ my_data = result; console.log(my_data.name); console.log(result.name); } }); alert(my_data.name); } $( document ).ready(get_my_data);
原因:问题是由于全局变量my_data和success函数的参数变量不是同一个变量导致的。需要将参数的值赋给全局变量来解决这个问题。
解决方法:可以更改参数的变量名,然后将其值赋给全局变量。
success: function(result) { my_data = result; }
具体可以参考此示例:https://jsfiddle.net/f6fdx26x/
更新:
你还有一个问题,由nope回答了。刚才做了那个。还是一样。my_data仍然是undefined。
success: function(result) { my_data = result; console.log(my_data); } }); alert(my_data);
是的,你有两个问题。一个是这个问题,另一个是编码问题,由回答者回答了。