如何从成功的 AJAX 调用中访问 jqXHR 对象的responseText?
我的 JavaScript 代码中有以下 ajax 调用
url = 'http://news.ycombinator.com/?callback=?';
$.ajax({url:url ,async:!1,dataType:'script', complete:function(result)
{alert(JSON.stringify(result));}
});
以下内容在警报中打印出来。
{'readyState':4, status:200, statusText:'success'}
它没有responseText。但是,在chrome控制台中我仍然可以看到ycombinator页面的所有返回HTML数据。我如何访问这个文本?
另一方面,如果我将 url 变量更改为返回有效 json 对象的 url(如下所示),
urll = 'http://gdata.youtube.com/feeds/api/videos?q=basshunter&format=5&max-results=5&v=2&alt=jsonc';
$.ajax({url:urll ,async:!1, complete:function(result)
{alert(JSON.stringify(result));}
});
则会按预期返回所有响应文本。
需要注意的一点是,如果我没有像第一种情况那样将 url 指向有效的 JSON 返回 url,我必须提供选项 dataType:'script'(或 JSON)。否则它将引发跨域请求错误。在第二种情况下,即使我没有指定 dataType,它也不会引发任何跨域错误。
I have following ajax call in my JavaScript code
url = 'http://news.ycombinator.com/?callback=?';
$.ajax({url:url ,async:!1,dataType:'script', complete:function(result)
{alert(JSON.stringify(result));}
});
Following is printed out in alert.
{'readyState':4, status:200, statusText:'success'}
It doesn't have responseText.But still, in the chrome console I can see all of the return HTML data of ycombinator page.How can I access this text?
On the other hand if I change the url variable to a url which returns a valid json object like following,
urll = 'http://gdata.youtube.com/feeds/api/videos?q=basshunter&format=5&max-results=5&v=2&alt=jsonc';
$.ajax({url:urll ,async:!1, complete:function(result)
{alert(JSON.stringify(result));}
});
this returns all of the responseText as expected.
One thing to note is if I don't point the url to a valid JSON returning url as in first case, I have to provide option dataType:'script'(or JSON).Otherwise it will throw a cross-domain request error.In second case it didn't throw any cross-domain error even if I didn't specify dataType.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将 complete 回调替换为 success。当ajax请求成功完成时执行成功回调。
另外,在您的数据类型中使用“json”而不是“script”
如果您在 dataType 中使用“script”,它将返回类似
"{\"key\":\"value\"}"。
如果您在 < strong>dataType 它将返回类似
{"key":"value"}.
Replace your complete callback with success. Success callback executed when ajax request completed successfully.
Also in your dataType use "json" instead of "script"
if you use "script" in dataType it will return like
"{\"key\":\"value\"}".
if you use "json" in dataType it will return like
{"key":"value"}.