【发布时间】:2021-12-22 15:32:50
【问题描述】:
我已经搜索了这个,尝试了从 stackoverflow 建议的问题中接受的解决方案可能会起作用,在尝试了我能想到或找到的一切之后,我作为最后的手段来到这里。 我希望我的 razor 页面上有一个按钮,通过我必须使用的 ajax 函数发送发布请求,并返回一个没有布局的 razor 页面。
HTML
<button id="myawesomebutton">Go get a partial</button>
javascript
var myawesomeajaxobject=new ajax('/myawesomeurl');
myawesomeajaxobject.done=function(dat)
{
document.getElementById('myawesomediv'),innerHTML=dat
}
myawesomeajaxobject.go('myawesomeparameter01=1&myawesomeparameter02=2');
我必须使用的 AJAX 对象添加了以下标头:
Content-type, application/x-www-form-urlencoded
Access-Control-Allow-Origin, *
以及在 url 端点添加 '?' 后跟 unix 时间码。
据我了解,请求必须首先发送到剃须刀页面后面的 cshtml.cs 类,然后将重定向到我的部分页面。
无论我如何命名我的 C# 方法、onPost、myawesomeurl 以及许多其他名称,我都会收到 404 错误,而不是在 myawesomediv 中呈现部分内容。
我尝试添加一个防伪令牌,将服务器上的 CORS 值设置为“全部接受”,并尝试将请求直接发送到部分的 onPost,但我一无所获。
更新。
我已添加:
services.AddRazorPages().AddRazorPagesOptions(options =>
{
options.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});
到我的创业公司。
我的 javascript 显示:
var myawesomeajaxobject=new ajax('/myawesomeurl');
myawesomeajaxobject.done=function(dat)
{
document.getElementById('myawesomediv'),innerHTML=dat
}
myawesomeajaxobject.go('handler=myawesomeurl&myawesomeparameter01=1&myawesomeparameter02=2');
这是cshtml.cs文件中的处理方法:
public void OnPostmyawesomeurl()
{
//myawesomecoded added, so I have a break point to hit.
}
我仍然收到 404。 这真的可以在剃刀页面中实现吗?
【问题讨论】:
-
404表示没有找到路由,你需要检查你的路由而不是检查你的标题。 -
您是否尝试过使用 var myawesomeajaxobject=new ajax("/?handler=myawesomeurl");
-
谢谢@YiyiYou,你是对的,问题应该是,创建可发现端点的正确方法是什么。
-
是的,@Zafor。我已经尝试过具有不同端点的各种组合。我并不是说我不一定需要它,但是我如何构成终点?
标签: javascript ajax asp.net-core razor-pages partial-views