使用$ .ajax类型OPTIONS发送查询字符串

时间:2014-05-12 15:42:31

标签: javascript jquery ajax

我的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。根据我的阅读,浏览器在进行某些跨源调用时会自动执行此操作。我告诉他这个,但我被告知要搜索附加查询字符串的解决方案。有办法吗?

1 个答案:

答案 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'
})