获取 jQuery AJAX 响应标头时遇到问题
这就是我正在尝试的:
$.ajax({
type: 'GET',
url: 'http://imgur.com/upload/',
data: {
url: 'http://upload.wikimedia.org/wikipedia/commons/3/3e/Phalaenopsis_JPEG.png'
},
complete: function(jqXHR, textStatus) {
console.log(jqXHR.getAllResponseHeaders());
}
});
我只是得到一个空字符串。
任何帮助将不胜感激。
编辑:
这些是我可以在 Firebug 中看到的响应标头:
Server: nginx Date: Sat, 02 Jul 2011 03:04:26 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: close Set-Cookie: IMGURSESSION=asdfasdfasdfasdf; path=/; domain=.imgur.com SERVERID=www4; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Location: http://imgur.com/ocuVX Content-Encoding: gzip Vary: Accept-Encoding
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在这里找到了一个解决方案:https://hacks。 mozilla.org/2011/03/the-shortest-image-uploader-ever/
显然,此解决方案需要 POST,这意味着您需要使用 API 密钥。我找不到任何使用 API 无密钥 GET 方法获取响应的方法。
我能够在没有 API 密钥的情况下进行上传的唯一方法是通过 YQL 并从诊断中获取最终的重定向 URL:
I've found one solution here: https://hacks.mozilla.org/2011/03/the-shortest-image-uploader-ever/
Obviously this solution requires a POST which means you need to use an API key. I couldn't find any way of getting a response with the API-keyless GET method.
The only way I could manage to do an upload without an API key was to go through YQL and get the final redirect URL from the diagnostics:
是 JSONP 调用吗?那么你将不会得到任何标题。另请参阅:jqXHR.getAllResponseHeaders() 不会返回所有标头
Is it JSONP call? You won't get any headers then. Also see this: jqXHR.getAllResponseHeaders() won't return all headers
确保您使用的是 > jQuery 1.5 并确保将 crossDomain:true 添加到 ajax 属性中
Make sure you're using > jQuery 1.5 and make sure you add crossDomain:true to your ajax attributes