我的REST API开发人员告诉我,在访问实际链接之前,首先使用OPTIONS
类型进行ajax调用,检查文件是否可供下载。
如果它返回OK,那么我可以继续并将浏览器重定向到该页面并下载文件。
return $.ajax({
type: 'OPTIONS',
url: 'http://api/account-data',
data: {user_id: '5'}
}).done(function(data) {
// redirect browser to http://api/account-data?user_id=5
});
我遇到的问题是,当我使用OPTIONS
时,我不能附加任何查询字符串。此外,我从来没有听说过有人使用OPTIONS
之前。据我所知,浏览器在执行某些跨域调用时会自动执行此操作。我告诉了他这一点,但我被告知要寻找一个附加查询字符串的解决方案。有办法吗?
而且,我以前从来没有听说过有人使用OPTIONS。
人们通常不太会正确使用HTTP。
也就是说,我希望使用HEAD请求来确定资源是否可用。
据我所知,浏览器在执行某些跨域调用时会自动执行此操作。
CORS规范要求在某些情况下将OPTIONS请求作为预飞行请求,但是OPTIONS早于CORS,并且使用该HTTP动词还有其他原因。
我被告知要寻找一个附加查询字符串的解决方案。有办法吗?
当你发出OPTIONS请求时,jQuery会忽略data
。将查询字符串直接放在URL中。
$.ajax({
type: 'OPTIONS',
url: 'http://api/account-data?user_id=5'
})