如何通过ajax jquery/javascript向服务器发送选项方法调用?
我试图调用一个API,该API在服务器上接受OPTIONS方法,它在postman上运行并返回json对象,但下面的代码在js上不起作用 我已经读到OPTIONS调用是CORS调用的飞行前调用,所以这个API是https,在另一台服务器上。但即使这样也没有响应,它返回405 method not found如何通过ajax jquery/javascript向服务器发送选项方法调用?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图调用一个API,该API在服务器上接受OPTIONS方法,它在postman上运行并返回json对象,但下面的代码在js上不起作用 我已经读到OPTIONS调用是CORS调用的飞行前调用,所以这个API是https,在另一台服务器上。但即使这样也没有响应,它返回405 method not found $.ajax({ url: url, dataType: "jsonp", method :"OPTIONS",
$.ajax({
url: url,
dataType: "jsonp",
method :"OPTIONS",
crossDomain: true,
contentType: 'application/json',
headers: {
"Content-type": "application/json",
"Cache-Control": "no-cache",
"Accept": "application/json,long_format",
"Access-Control-Allow-Origin": "*"
},
success: function (data) {
console.log("success" + data);
},
error: function (data) {
console.log("fail" + data);
}
}).fail(function(data) {
console.log("failed" + data);
});
额外信息:
API是跨域的,基于ssl,所以为了覆盖跨域请求,我必须向用户数据类型:jsonp
更新:
这是不可能的情况,所以我必须得到服务器端的更新
说明:
这是一个问题
选项方法,也在跨域后面
a/c根据我在互联网上所做的一些研究,可通过以下方式访问CORS请求:
数据类型:jsonp,
但是使用->数据类型:jsonp
您只能调用GET方法
所以我们被困在这里,允许我们调用跨域https请求或者调用选项方法,
通常,选项方法是由浏览器自动完成的飞行前方法
现在请停止表决我的问题
把这个拿出来。JSONP请求总是GET请求。这是你的主要问题
把这个拿出来。它什么也不做,除非您发出的是一个被重定向为跨来源请求的同一来源请求
把这个拿出来。您正在提出一个选项请求。没有用于描述内容类型的请求正文
把这个拿出来。出于同样的原因
把这个拿出来。它是一个响应头,在请求中没有位置。您是在尝试进行飞行前选项请求还是其他一些选项请求?这是一个响应头,而不是请求头尝试调用选项方法您可能不想手动进行选项调用。浏览器本身就应该这样做。关于CORS有很多问题。您试图强制不接受CORS请求的服务器接受CORS请求。与服务提供商讨论如何访问其服务的方向。请求是跨源和https方法,如果没有它,则数据类型为:jsonp,它提供跨源策略issue@ShahrukhAhmad-然后您需要更改服务器以使用CORS授予您发出请求的权限。JSONP只能通过GET请求生成。你的意思是不能手动生成?我从postman调用了这个OPTIONS方法,它返回正确的结果。。应该有某种方法从ajax tooGo和read调用它,这解释了同源策略的意义。
dataType: "jsonp",
crossDomain: true,
contentType: 'application/json',
"Content-type": "application/json",
"Access-Control-Allow-Origin": "*"