Javascript 发送带有$.ajax类型选项的查询字符串

Javascript 发送带有$.ajax类型选项的查询字符串,javascript,jquery,ajax,Javascript,Jquery,Ajax,我的restapi开发人员告诉我,在转到实际链接之前,首先使用OPTIONStype进行ajax调用,检查文件是否可下载 如果返回OK,那么我可以继续将浏览器重定向到该页面并下载文件 return $.ajax({ type: 'OPTIONS', url: 'http://api/account-data', data: {user_id: '5'} }).done(function(data) { // redirect browser to http://api/accou

我的restapi开发人员告诉我,在转到实际链接之前,首先使用
OPTIONS
type进行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
});
我遇到的问题是在使用
选项时无法附加任何查询字符串。而且,我以前从未听说过有人使用
选项。据我所知,浏览器在执行某些跨原点调用时会自动执行此操作。我告诉他这一点,但我被告知要搜索一个附加查询字符串的解决方案。有办法吗

而且,我以前从未听说过有人使用选项

人们通常对正确使用HTTP非常不满意

也就是说,我希望使用HEAD请求来确定资源是否可用

据我所知,浏览器在执行某些跨原点调用时会自动执行此操作

CORS规范要求在某些情况下将选项请求作为飞行前请求,但选项早于CORS,使用该HTTP动词还有其他原因

我被告知要搜索附加查询字符串的解决方案。有办法吗

当您发出选项请求时,jQuery将忽略数据。将查询字符串直接放在URL中

$.ajax({
  type: 'OPTIONS',
  url: 'http://api/account-data?user_id=5'
})

数据
字段是查询字符串,但。。。。因此,我认为您可能误用了单词查询字符串。您的示例应该生成输出URL
http://api/account-data?user_id=5