我使用Azure Mobile JS SDK为Web API 2启用了CORS,但PATCH仍然被阻止

时间:2019-04-03 16:08:45

标签: cors azure-mobile-services

我有一个使用Azure Mobile SDK的WEB API 2后端,我的控制器从SDK继承了TableController,这非常简单。

  public class ProjectItemController : TableController<ProjectItem>

然后,我正在使用JavaScript SDK从我的系统中获取,发布,修补和删除项目。

除修补程序更新项目外,所有功能均正常运行。我必须使用PATCH动词,因为它是SDK的一部分,并且在Web API控制器端和客户端SDK上都自动绑定到控制器方法。

控制器:

public Task<ProjectItem> PatchProjectItem(string id, Delta<ProjectItem> patch)
    {
         return UpdateAsync(id, patch);
    }

客户端SDK:

var updateItem = {
    id: '7163bc7a-70b2-4dde-98e9-8818969611bd',
    name: 'My New Name'
};

table
    .update(updateItem)
    .done(function (updatedItem) {
        // You can now update your cached copy
    }, failure);

我无法控制那些方法的以太坊使用的VERB,它们都自动使用SDK规定的PATCH。

我的CORS设置在Web API 2 Startup.MobileApp中如下:

HttpConfiguration config = new HttpConfiguration();

              var cors = new EnableCorsAttribute("*","*","*");
              config.EnableCors(cors);

            new MobileAppConfiguration()
                .UseDefaultConfiguration()
                .ApplyTo(config);

还有其他人会为PATS这样的PATS工作吗?

编辑: 这是我在Chrome中收到的控制台错误:

Access to XMLHttpRequest at ’https://mywebsite..com/tables/project/d6a1c225176f4683921b324708fbef28' from origin ‘http://localhost:44348’ has been blocked by CORS policy: Method PATCH is not allowed by Access-Control-Allow-Methods in preflight response.

0 个答案:

没有答案