以博客园首页为例 , 打开博客园 , 使用 edge 控制台运行
______________________________________________
直接运行 :
$.get('https://www.cnblogs.com/following')
[object Object]: ......
点开发现这个对象并没有 responseText
添加了一个变量:
var x = $.get('https://www.cnblogs.com/following')
x.responseText
<html>.....</html>
正常得到响应
____________________________________________
如果写在一个函数里面:
function f() {var x = $.get('https://www.cnblogs.com/following');return x.responseText;}
f()
undefined
得到了一个 undefined
_______________________________________________
为何直接运行无法获取对象响应文本 , 赋值给对象则有响应文本 ?
而逐条运行可以获取响应 , 但是封装在函数里则不行呢 ?
按我的理解这里也并不存在跨域问题
... 我到底是在什么地方错误了呢 ?
我又在 chrome 上试了一下
$.get('/news')
[object Object]
这次返回的对象是有 responseText 的,
但是....封装函数的写法 , 或者直接选择 responseText 仍然是 undefined , 也就是以下三种写法
function f() {....} ; f();
undefined
$.get('/news')['responseText']
undefined
$.get('/news').responseText
undefined
function f() {
var x = $.get('https://www.cnblogs.com/following');
return x;
}
var y = f();
y.responseText;
$.get 是異步,直接return x.responseText當然會是undefined
感谢指出 , 我也去查看了一下关于异步的一些资料 , 比如 callback , Promise , async/await 等, 算是有了个大概认知 , 同时也注意到 $.get 是有一个回调函数地参数的 , 但是
$.get('/news',function (d) { console.log(d) })
同样没有得到控制台对于响应的输出 , 这又是哪里错了呢 ?
@p->p.Name:
$.get('https://q.cnblogs.com/q/120275/',function (d) { console.log(d); }, 'html');
要寫成這樣喔