我的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
。根据我的阅读,浏览器在进行某些跨源调用时会自动执行此操作。我告诉他这个,但我被告知要搜索附加查询字符串的解决方案。有办法吗?
答案 0 :(得分:1)
另外,我以前从未听说过有人使用OPTIONS。
人们对正确使用HTTP一般都很糟糕。
那就是说,我希望使用HEAD请求来确定资源是否可用。
根据我的阅读,浏览器在进行某些跨源调用时会自动执行此操作。
在某些情况下,CORS规范要求OPTIONS请求作为飞行前请求,但OPTIONS早于CORS,并且还有其他原因使用该HTTP动词。
我被告知要搜索附加查询字符串的解决方案。有办法吗?
当您发出OPTIONS请求时,jQuery会忽略data
。将查询字符串直接放在URL中。
$.ajax({
type: 'OPTIONS',
url: 'http://api/account-data?user_id=5'
})