相关疑难解决方法(0)

如何通过JavaScript发送跨域POST请求?

如何通过JavaScript发送跨域POST请求?

注意 - 它不应该刷新页面,然后我需要抓取并解析响应.

javascript ajax cross-domain

553
推荐指数
9
解决办法
50万
查看次数

附加到对象

我有一个对象,它包含警报和一些有关它们的信息:

var alerts = { 
    1: { app: 'helloworld', message: 'message' },
    2: { app: 'helloagain', message: 'another message' }
}
Run Code Online (Sandbox Code Playgroud)

除此之外,我还有一个变量,说明有多少警报alertNo.我的问题是,当我去添加新警报时,有没有办法将警报附加到alerts对象上?

javascript

141
推荐指数
8
解决办法
34万
查看次数

使用Anti-forgery令牌将JSON模型发布到ASP.Net MVC3

所以,我一直在用头撞墙,我找不到任何好的消息来源.也许我忘记了模型绑定的东西在MVC3中是如何工作的,但这就是我想要做的事情:我有一些与Knockout绑定的编辑器来处理模型的编辑.模型没什么了不起的:

public class SetupTemplate
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Template { get; set; }
} 
Run Code Online (Sandbox Code Playgroud)

我试图呼叫的动作的签名是:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult UpdateTemplate(SetupTemplate template)
Run Code Online (Sandbox Code Playgroud)

从这里的另一个问题,我拿起这个相当有用的片段来获取防伪标记:

window.addAntiForgeryToken = function(data) {
    data.__RequestVerificationToken = $('#__AjaxAntiForgeryForm input[name=__RequestVerificationToken]').val();
    return data;
};
Run Code Online (Sandbox Code Playgroud)

所有这些都与我一起尝试通过ajax发布更新:

payload = window.addAntiForgeryToken(ko.mapping.toJS(self.data));
$.ajax({
    type: "post",
    url: endpoint,
    data: payload,
    success: function(data) {
        //Handle success
    }});
Run Code Online (Sandbox Code Playgroud)

这导致了Chrome开发人员工具的表单数据部分

Id:1
Name:Greeting
Template: [Template Text]
__RequestVerificationToken: [The really long anti-forgery token]
Run Code Online (Sandbox Code Playgroud)

拾取防伪标记,但我的模型为空.我见过的大多数例子只使用传递的单个参数,而不是模型.

我确定我错过了一些明显的东西,对它可能是什么的任何见解?

编辑:响应@Mark,将调用更改为:

$.ajax({
type: …
Run Code Online (Sandbox Code Playgroud)

ajax jquery json csrf asp.net-mvc-3

7
推荐指数
1
解决办法
5355
查看次数

ASP.net Identity从javascript发送AntiForgeryToken

使用ASP.net MVC 5来自帐户控制器和帐户视图.在Register视图中有行

@Html.AntiForgeryToken()
Run Code Online (Sandbox Code Playgroud)

以上寄存器控制器有属性:

[ValidateAntiForgeryToken]
Run Code Online (Sandbox Code Playgroud)

我决定使用JSON从javascript发送数据到服务器(我使用的是Angular和$ http.post方法).

我的问题是如何使用javascript发送此AntiForgeryToken并在控制器中验证它?

我应该包括更多安全措施吗?

javascript asp.net asp.net-mvc angularjs asp.net-identity

3
推荐指数
1
解决办法
1492
查看次数