Jquery ASP.Net WebAPI删除谓词不起作用

Jquery ASP.Net WebAPI删除谓词不起作用,jquery,cross-domain,asp.net-web-api,cors,Jquery,Cross Domain,Asp.net Web Api,Cors,我正在使用IIS 7.5和asp.net webapi来删除记录id。我可以让它在Safari中工作,但不能在Firefox中工作。以下是jQuery Ajax提交的请求/响应的图像: var deleteGame = function(gameId) { var d = $.Deferred(); var url = Enum.RootUrl + Enum.DeleteGameUrl + gameId; jQuery

我正在使用IIS 7.5和asp.net webapi来删除记录id。我可以让它在Safari中工作,但不能在Firefox中工作。以下是jQuery Ajax提交的请求/响应的图像:

    var deleteGame = function(gameId)
    {       
        var d = $.Deferred();
        var url = Enum.RootUrl + Enum.DeleteGameUrl + gameId;
        jQuery.support.cors = true;
        $.ajax(
        {
            url: url,
            type: 'Delete',
            cache: false,
            crossDomain: true,
            processData: true,
            success: function () 
            {
                d.resolve();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
                //alert("error happened AGAIN:\n" + JSON.stringify(XMLHttpRequest) );
            }
        });

        return d.promise();
    };

以下是我提交jQuery Delete的代码片段:

    var deleteGame = function(gameId)
    {       
        var d = $.Deferred();
        var url = Enum.RootUrl + Enum.DeleteGameUrl + gameId;
        jQuery.support.cors = true;
        $.ajax(
        {
            url: url,
            type: 'Delete',
            cache: false,
            crossDomain: true,
            processData: true,
            success: function () 
            {
                d.resolve();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
                //alert("error happened AGAIN:\n" + JSON.stringify(XMLHttpRequest) );
            }
        });

        return d.promise();
    };
以下是为jquery提交生成的URL:

我不知道为什么它可以在Safari中使用,但不能在Firefox中使用。请帮忙

请求标头中似乎缺少访问控制请求标头。我不确定这是否是问题的原因

在Safari和Chrome中玩过这个之后,我得到了“拒绝设置不安全的头”访问控制请求头
选项405(不允许使用方法)“通过浏览器控制台在每个浏览器中出错,但允许继续执行删除操作。不知道我在这里干什么。如果有任何建议,我将不胜感激。

经过几个小时的研究、故障排除、诅咒和关闭我的代码,我终于在这种方法的帮助下实现了它:

我最初只是尝试WebAPI方法,但没有成功。然后,我删除了我正在尝试的所有内容,并遵循上面链接中描述的IIS方法,一切正常。我不知道为什么。我只在Web.Config中添加了这行代码,没有其他内容:

    <modules runAllManagedModulesForAllRequests="true">
        <add name="CorsHttpModule" type="Thinktecture.IdentityModel.Http.Cors.IIS.CorsHttpModule"/>
    </modules>


这是我做的唯一配置,我可以跨域删除。我假设其他动词也可以,我只测试了Delete。所以,我很感激我能让我的代码正常工作,但我想知道为什么它能正常工作,因为我只做了上面链接中引用的部分配置。如果有人偶然发现了这一点并能解释,我将不胜感激。谢谢。

经过几个小时的研究、故障排除、咒骂和关闭我的代码,我终于在这种方法的帮助下让它工作了:

我最初只是尝试WebAPI方法,但没有成功。然后,我删除了我正在尝试的所有内容,并遵循上面链接中描述的IIS方法,一切正常。我不知道为什么。我只在Web.Config中添加了这行代码,没有其他内容:

    <modules runAllManagedModulesForAllRequests="true">
        <add name="CorsHttpModule" type="Thinktecture.IdentityModel.Http.Cors.IIS.CorsHttpModule"/>
    </modules>

这是我做的唯一配置,我可以跨域删除。我假设其他动词也可以,我只测试了Delete。所以,我很感激我能让我的代码正常工作,但我想知道为什么它能正常工作,因为我只做了上面链接中引用的部分配置。如果有人偶然发现了这一点并能解释,我将不胜感激。谢谢。

建议不要使用此技术。它还提供了一种解决方法。建议不要使用这种技术。它还提供了一种解决方法。