如何通过Ajax jquery/javaScript将选项方法调用发送到服务器



我正在尝试调用在服务器上接受选项方法的API,它在Postman上运行并返回JSON对象,但是以下代码不适用于JS

我读过,选项调用是CORS呼叫的飞行前调用,因此此API是HTTPS,并且在另一台服务器上。但是即使那样,也没有响应,它返回405方法

也找不到。
 $.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上,因此要涵盖跨域请求,我必须用户使用dataType: "jsonp"

更新:

这是不可能的方案,因此我必须在服务器端进行更新...

说明:有一些问题跨域背后的选项方法A/C我在互联网上进行的一些研究,可以访问CORS请求:数据类型:" JSONP",但是 -> datatype:" jsonp"您只能致电获取方法因此,我们被困在这里,允许我们调用跨域https请求,或者我们可以调用选项方法,通常,选项方法是浏览器自动完成的飞行前方法

现在,请停止投票

dataType: "jsonp",

将其取出。JSONP请求始终获取请求。这是您的主要问题。

crossDomain: true,

将其取出。除非您提出重定向作为交叉来源请求,否则它无能为力。

contentType: 'application/json',

将其取出。您正在提出选项请求。没有请求主体来描述。

的内容类型
"Content-type": "application/json",

将其取出。出于同样的原因。

"Access-Control-Allow-Origin": "*"

将其取出。它是响应标题,在请求中没有位置。

最新更新