如何解决SignalR 无法在 aspx 网络表单上连接
我想在 .net framework 4.6.2 webform 项目上使用 signalR,但是,尝试了 4 天后,我的连接总是停在 /signalr/negotiate/,响应为 400
这是我的网络配置
<Home/>
const characterData = queryClient.getQueryData(["rickandmorty",idQuery]);
const charBool = characterData ? true : false;
const handleSingleLogCache = () => {
console.log(characterData) // returns data
console.log(charBool) // returns true
}
const handleRickAndMortyFetch = () => {
return delay()
.then(() => axios(`https://rickandmortyapi.com/api/character/${idQuery}`))
.then((res) => res.data);
};
const { data,error,isLoading } = useQuery(
["rickandmorty",idQuery],handleRickAndMortyFetch,{
cacheTime: 1000 * 60 * 60 * 24,enabled: false || idQuery !== 0 || charBool,staleTime: 1000 * 60 * 60 * 24
}
);
const handleFetchOnInputChange = (event) => {
console.log(characterData);
console.log(charBool);
setIdQuery(event.target.value,() => {
handleRickAndMortyFetch();
});
};
<button onClick={handleSingleLogCache}>Single Cache Log</button>
// <SearchForm/>
const disable =
isLoading || parseFloat(formId) === idQuery || !idQuery || cachedCharacters;
<form onSubmit={handleSubmit(handleSubmitForm)}>
<input onChange={handleFetchOnInputChange} />
<button disabled={disable}>Search Character</button>
</form>
这是我的启动代码
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,PUT,DELETE" />
</customHeaders>
</httpProtocol>
这是来自我的 aspx 页面的代码示例
public void Configuration(IAppBuilder app)
{
app.Map("/signalr",map =>
{
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration{};
map.RunSignalR(hubConfiguration);
});
}
这是我的枢纽班
<script src="scripts/jquery-1.6.4.js"></script>
<script type="text/javascript" src="scripts/jquery.signalR-2.4.1.min.js"></script>
<script type="text/javascript" src="signalr/hubs"></script>
<script>
$(function(){
var logger = $.connection.idologyHub;
logger.client.logMessage = function (msg) {
console.log(msg);
};
$.connection.hub.start();
})
</script>
我在网上查过,人们很少谈论如何使用aspx webforms运行signalR,加上他们拥有的示例代码不适用于我的项目 另外,我也知道这种情况需要 cors。另外,我确实在 web API/MVC 中使用过信号 R,但在 webforms 中似乎非常不同,谢谢您的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。