2017-10-14 52 views
0

我做了我生命中最大的项目,我补充了错误, 有个故事: 我做了一个国家的下拉列表,当您从选择列表中选择国家我使用JavaScript来国家ID发送到状态函数:发送javascript parametre发生错误asp asp模板样板

$("#Country").change(function() { 
    var Index = $(this).val(); 
    $.ajax({ 
     url: '/Company/State', 
     type: "POST", 
     dataType: 'html', 
     data: { CountryId: Index }, 
     success: function (data) { 
      $('#State').empty(); 
      $('#State').append($('<option>').attr("value", "").text("Select state")); 
      var state = JSON.parse(data)["state"]; 
      for (var i = 0; i < state.length; i++) { 
       $('#State').append($('<option>').attr("value", state[i].id).text(state[i].name)); 
      } 
     } 
    }); 

,然后我droplist不工作​​,我碰到下面的错误,我的下拉列表不显示任何东西:当我

"Failed to load resource: the server responded with a status of 400 (Empty or invalid anti forgery header token.)" 

和disab勒antiforgerytoken一切完美

[HttpPost] 
[DisableAbpAntiForgeryTokenValidation] 
public string State(GetStateInput input) 

那里是我的问题:

我们需要antiforgerytoken,我们不能将其禁用,那么,如何克服错误,而不禁用antiforgerytoken?

+0

什么是你的问题? – Backs

+0

我们需要antiforgerytoken,我们不能禁用它,所以我如何克服错误,而不禁用antiforgerytoken –

+0

可能的重复[在ASP.NET MVC中包含ajax中的antiforgerytoken](https://stackoverflow.com/questions/14473597/ include-antiforgerytoken-in-ajax-post-asp-net-mvc) – Backs

回答

0

最好,add this_Layout.cshtml或视图:

@{ 
    SetAntiForgeryCookie(); 
} 

另外,intercept XMLHttpRequest

(function (send) { 
    XMLHttpRequest.prototype.send = function (data) { 
     this.setRequestHeader(abp.security.antiForgery.tokenHeaderName, abp.security.antiForgery.getToken()); 
     return send.call(this, data); 
    }; 
})(XMLHttpRequest.prototype.send);