【发布时间】:2016-08-11 18:54:41
【问题描述】:
我正在尝试从 Apache Cordova 应用程序访问托管在 Azure 移动服务中的 SignalR,在启动集线器连接时出现错误 403 Forbidden: JSONP is disabled at the negotiating request with web socket protocol。 我尝试如下添加 EnableJsonP,但仍然出现相同的问题,是否有任何其他方法可以为 azure 托管的移动服务启用 jsonp。
public static class WebApiConfig
{
public static void Register()
{
SignalRExtensionConfig.Initialize();
// Use this class to set configuration options for your mobile service
ConfigOptions options = new ConfigOptions();
options.SetRealtimeAuthorization(AuthorizationLevel.Anonymous);
//// Use this class to set WebAPI configuration options
var configBuilder = new ConfigBuilder(options, (httpconfig, ioc) =>
{
ioc.RegisterInstance(new CORSSignalROwinAppBuilderExtension(httpconfig)).As<IOwinAppBuilderExtension>();
});
HttpConfiguration config = ServiceConfig.Initialize(configBuilder);
config.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Include;
config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Include;
Database.SetInitializer(new snackappmobileInitializer());
}
}
internal class CORSSignalROwinAppBuilderExtension : OwinAppBuilderExtension
{
private HttpConfiguration httpconfig;
protected override void ConfigureSignalR(IAppBuilder appBuilder)
{
appBuilder.Map("/signalr", map =>
{
var hubConfiguration = new HubConfiguration
{
EnableJSONP = true
};
map.RunSignalR(hubConfiguration);
});
base.ConfigureSignalR(appBuilder);
}
public CORSSignalROwinAppBuilderExtension(HttpConfiguration httpconfig) : base(httpconfig)
{
this.httpconfig = httpconfig;
}
}
【问题讨论】:
标签: cordova cors signalr jsonp azure-mobile-services