Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

599
Views
El campo de formulario antifalsificación requerido "__RequestVerificationToken" no está presente

aquí hay otro obstáculo para mí, quiero que mi sitio permanezca protegido contra ataques entre sitios, estoy desarrollando un formulario maestro/detalle usando asp.net mvc 5 a través de la solicitud Ajax, entonces, para crear una entrada, tenemos que pasar por el proceso de solicitud de Ajax, de esta manera:

 $.ajax({ url: '/Sales/Create', data: JSON.stringify(salesmain), type: 'POST', contentType: 'application/json;', dataType: 'json', success: function (result) { if (result.Success == "1") { window.location.href = "/Sales/index"; } else { alert(result.ex); } } });

ahora, no está navegando a la acción Crear en el controlador de ventas, como dice la solicitud ajax, y antes de eso, arroja la siguiente excepción:

El campo de formulario antifalsificación requerido "__RequestVerificationToken" no está presente.

He buscado mucho en Google pero aún no he tenido éxito, es por eso que estoy aquí, he leído algunos blogs que dicen buscar el campo oculto __RequestVerificationToken usando jquery y agregarlo a los valores del formulario, adjuntando el JSON.stringify(salesmain) en una función, de esta manera:

 $.ajax({ . . addRequestVerificationToken(JSON.stringify(salesmain))

y la función:

 function addRequestVerificationToken(data) { data.__RequestVerificationToken = $('input[name=__RequestVerificationToken]').val(); return data; };

Además, ya tengo la siguiente estructura de código:

 @using (Html.BeginForm()) { @Html.AntiForgeryToken() . .

y el atributo antes de la acción Crear:

 [HttpPost] [ValidateAntiForgeryToken] public JsonResult Create([Bind(Include = "SalesId,ReferenceNo,SalesDate,SalesPerson")] SalesMain salesMain) { . .

y también estoy usando jQuery 1.5, puede ser el culpable, si no, ¿qué debo hacer para resolver este problema? Cualquier AYUDA será muy apreciada, gracias de antemano :)

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Su función addRequestVerificationToken() no agrega el token porque ya ha clasificado los datos (ya no es un objeto javascript, por lo que data.__RequestVerificationToken = $(...) no hace nada).

Puede hacer que esto funcione cambiando el código a

 data: JSON.stringify(addRequestVerificationToken(salesmain)),

sin embargo, esto no es necesario ya que no necesita clasificar los datos. En su lugar, elimine la opción contentType: 'application/json;', para que use la application/x-www-form-urlencoded; charset=UTF-8' y uso

 data: addRequestVerificationToken(salesmain),

o mejor aún, si ha generado correctamente su vista usando los métodos HtmlHelper y sus entradas contienen el atributo de nombre correcto ( name="SalesId" , name="ReferenceNo" etc.), entonces simplemente use

 data: $('form').serialize(),`

que serializará correctamente todas las entradas en su formulario, incluido el token.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!