如何处理预检请求?

问题描述

我正在尝试向支持 cors 策略的不同源服务器发送 post 请求。

问题是 content-type:application/json .CORS 飞行前请求(OPTIONS 调用)不能是这个 Content-Type。 我还有另一种选择与我的标题一起发送:
Access-Control-Request-Headers: content-type,deviceid,devicepassword,deviceversion

my network header

有没有办法获取数据?

我正在使用 react.js 和 asp.net core 编写的后端服务

解决方法

希望这能解决问题。

import {
      TurnContext,TeamsActivityHandler,CardFactory,MessagingExtensionAction,TeamsInfo,} from 'botbuilder';

export default class TeamsMessagingExtensionsActionBot extends TeamsActivityHandler {
  constructor() {
    super();
  }

  // @ts-ignore
  handleTeamsMessagingExtensionSubmitAction(
    context: TurnContext,action: MessagingExtensionAction,) {
    switch (action.commandId) {
      case 'someCommand':
        return handleCommand(context,action);
      default:
        throw new Error('NotImplemented');
    }
  }
}

async function handleCommand(
  context: TurnContext,) {
  const card = CardFactory.heroCard(
    'Some Command','We have received your command!',);

  const user = await TeamsInfo.getMember(context,context.activity.from.id);
  console.log('User:',user);

  const attachment = {
    contentType: card.contentType,content: card.content,preview: card,};

  return {
    composeExtension: {
      type: 'result',attachmentLayout: 'list',attachments: [attachment],},};
}
,

如果传入自定义header,则需要添加指定的请求header。

     services.AddCors(option=>
        {
            option.AddPolicy("policyname",builder => 
                builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod();
        });

删除 credentials: 'include'

另一种方法:不要删除credentials: 'include'。在烘焙中添加 AllowCredentials

    services.AddCors(option=>
        {
            option.AddPolicy("policyname",builder => 
                builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials();
        });

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...