我的JavaScript应用程序需要确定资源的长度, 然后 才能使用Ajax下载资源。通常这不是问题,您只需发出HEAD请求并提取即可Content- Length
。
var xhr = $.ajax({type:"HEAD", url: "http://own-domain/file.html"})
xhr.getResponseHeader("Content-Length")
// "2195"
但是,资源存储在与客户端不同的服务器上。(我控制的服务器)。因此,我正在使用CORS发出跨域Ajax请求,并已设置服务器以使用自定义标头响应HEAD请求和GET
/ POST请求的预检请求。
总的来说,这很有效,但是Content-Length
在使用CORS时,我似乎找不到一种从HEAD响应中提取出来的方法:
var xhr = $.ajax({type:"HEAD", url: "http://other-domain/file.html"})
xhr.getResponseHeader("Content-Length")
// ERROR: Refused to get unsafe header "Content-Length"
我已经尝试在预检或响应中设置各种标题,例如
Access-Control-Expose-Headers: Content-Length
规范似乎建议应使其可用。但是,无论我做什么,我似乎都无法将Content-Length标头提供给客户端。有什么建议?
(Chrome 8)
我发现所有浏览器中对CORS响应标头的支持都是错误的。在Chrome / Safari中,即使是“ Access-Control-Expose-
Headers”标头,我也只能在getAllResponseHeaders()的结果中看到简单的响应标头(http://www.w3.org/TR/cors/#terminology)在响应中设置。在Firefox
3.6.13中,getAllResponseHeaders()不会返回任何内容(甚至不是简单的响应头)。作为一种解决方法,我想您可以重载其中一个简单的响应标头以包含内容长度,但这可能会导致其他问题,并且仍然无法修复Firefox。
问题内容: 我正在看这个问题,它是http://hacks.mozilla.org/2011/03/the- shortest-image-uploader-ever/ 的链接,其中包含以下代码: 此跨域请求如何工作?我认为通常有一些安全限制阻止人们这样做。 问题答案: 服务器正在响应,并将Access-Control-Allow-Origin设置为允许跨域请求 http://www.w3.org
问题内容: 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展。 我在脚本顶部仅添加了以下两行,以使它们能够做到: 现在我的问题是:这里是否遗漏了任何安全方面的考虑?这个简单的解决方案会带来严重的问题吗? 如果是这样,什么是更好的解决方案? 感谢您的回复。 问题答案: 如上所述,任何人都可以随时向您的页面发送请求:因此,您需要考虑的主
问题内容: 如何使用XDomainRequest正确重写Ajax请求以使其在IE 8 +中工作? 问题答案: 将此插件用于IE8-9 Xdomain支持。 https://github.com/MoonScript/jQuery-ajaxTransport- XDomainRequest
问题内容: curl -v -X POST -H “Authorization: Basic ” -k -d “grant_type=password&username= &password= ” -H “Content-Type:application/x-www-form-urlencoded” https://localhost:9443/oauth2/token (来自 https://d
在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展<我只是在我的脚本顶部添加了这两行,让他们完成这项任务: 现在我的问题是:这里有我错过的任何安全考虑吗?这个简单的解决方案会产生严重的问题吗? 如果是,更好的解决方案是什么? 感谢您的回复。
本文向大家介绍jQuery Ajax实现跨域请求,包括了jQuery Ajax实现跨域请求的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了jQuery Ajax跨域请求的具体代码,供大家参考,具体内容如下 html 代码清单: 服务端 validate.php 代码清单: 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。