小编Jus*_*ead的帖子

请求 Hub 方法时 SignalR CORS 错误

我只是想让 SignalR 设置运行 owin 托管,我想通过 JavaScript 客户端连接。应该很容易吧?我能够快速设置并运行 SignalR 服务器,并将客户端连接到服务器。但是,当在客户端调用 done 回调时,我尝试调用集线器 Send 方法,并且在控制台中收到以下错误:

XMLHttpRequest 无法加载http://localhost:8199/signalr/signalr/send?transport=serverSentEvents& clien …AxBg6iaFwlK50s2DnurE&connectionData=%5B%7B%22name%22%3A%22testhub%22%7D%5D。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问Origin ' http://localhost '。响应的 HTTP 状态代码为 500。

这是我的服务器端代码:

    public static IAppBuilder UseService(this IAppBuilder app)
    {
        log4net.Config.XmlConfigurator.Configure();
        app.UseService(NinjectConfig.CreateKernel);
        app.UseLogging();
        app.UseSignalr();
        return app;
    }
Run Code Online (Sandbox Code Playgroud)
    internal static IAppBuilder UseSignalr(this IAppBuilder app)
    {
        app.Map("/signalr", map =>
            {
               map.UseCors(CorsOptions.AllowAll);

                var hubConfig = new HubConfiguration {EnableDetailedErrors = true};
                map.RunSignalR(hubConfig);
            }
        );
        return app;
    }
Run Code Online (Sandbox Code Playgroud)

这是客户端:

    var connection = $.hubConnection('http://localhost:8199/signalr');
    var testHub = connection.createHubProxy('testHub');

    testHub.on('addMessage', function(name){
        console.log(name);
    });

    connection.start().done(function () …
Run Code Online (Sandbox Code Playgroud)

signalr

6
推荐指数
1
解决办法
1万
查看次数

更新FormGroup中的FormArray时更改检测不起作用

使用反应形式并在推送时进行更改检测。

我一直在SO中搜寻如何做这个例子,我觉得这很普遍,但是,我似乎找不到如何正确地做一个好例子。

尝试更新包含在ngOnInit内的订阅中的FormGroup列表的FormArray时,将更新FormArray对象,但除非在组件上强制进行更改检测,否则视图将不会更新FormArray组。以这种方式更新的所有其他控件都在工作。因此,感觉就像我尝试更新FormArray是错误的,并且我不应该并且不想强制更改检测。

import { Component, OnInit, ChangeDetectionStrategy } from "@angular/core";
import { JournalTransactionService } from "app/accounting/shared-services/journal-transaction.service";
import { JournalEntry } from "accountingModels";
import { FormBuilder, FormGroup, FormArray } from "@angular/forms";
import { EntryLine } from "app/accounting/models/journal";

@Component({
  selector: "general-journal",
  templateUrl: "./general-journal.component.html",
  styleUrls: ["./general-journal.component.scss"],
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class GeneralJournalComponent implements OnInit {
  journalEntry: JournalEntry;
  journalEntryForm: FormGroup;

  constructor(private _journalTransactionService: JournalTransactionService, private _formBuilder: FormBuilder) { }

  get entryLines(): FormArray {
    return <FormArray>this.journalEntryForm.get("entryLines");
  };

  ngOnInit() {
    this.journalEntryForm = this._formBuilder.group(
      {
        transactionId: "", …
Run Code Online (Sandbox Code Playgroud)

angular angular-reactive-forms

5
推荐指数
1
解决办法
1849
查看次数

标签 统计

angular ×1

angular-reactive-forms ×1

signalr ×1