Tag: Ajax

Ajax调用后MVC3不显眼的validation工作

好的,这是交易,我已经看到有关这个问题的几个职位,但没有任何工作对我来说。 基本上,我有部分视图加载的select下拉列表,我试图根据之前select的下拉列表筛选每个后续下拉列表的内容。 如果我只是调用div容器中的部分视图,并加载页面,从数据注释validation工作正常, 主要是必需的属性 。 但是,如果我尝试通过AJAX加载相同的部分,则需要validation不起作用,任何人都可以在此之后发布表单和KABOOM。 我发现人们说,在callback成功,你需要有客户端validation重新parsing的forms,我正在尝试,但它似乎并没有工作。 我有一个看起来像这样的看法… @model Area51.Models.Workflow.AddReportableItemToBatchActionModel @{ ViewBag.Title = "Add Reportable Item to Batch"; Layout = "~/Views/Shared/_Layout.cshtml"; } <script type="text/javascript"> $(function () { var fadeDelay = 150; $(".jqDatePicker").datepicker({ dateFormat: 'm/d/yy', onSelect: function (date) { $("#categoryContainer").show(fadeDelay); } }); $('#Category').change(function () { RetrieveItemsForCategory(); $("#itemContainer").show(100); }); $('#Item').live('change', function () { RenderPartialForUOMByItem(); }); function RetrieveItemsForCategory() […]

jquery asp.netbutton通过ajax点击事件

我想知道是否有人可以指引我正确的方向。 我有一个单击事件(运行一些服务器端代码)的asp.netbutton。 我想要做的就是通过ajax和jQuery来调用这个事件。 有没有办法做到这一点? 如果是这样,我会喜欢一些例子。 提前致谢

可以用xhr.onloadreplacexhr.onreadystatechange用于AJAX调用吗?

我只需要支持主要的现代浏览器(IE10 +,FF,Chrome,Safari) 我可以做这个替代,因为我想简化我的代码库: 从: xhr.onreadystatechange = function () { if (this.readyState === 4) { if (this.status === 200) { o.callback(xhr.responseText); } else { return false; } } else { return false; } }; 至: xhr.onload = function (test) { o.callback(xhr.responseText); }; 我不认为MDN文件在这方面是明确的。 澄清: 我select不使用框架。

当附加查询string参数或使用POST不是一个选项时,如何避免Internet Explorer 11中的AJAXcaching

我意识到这个问题已经被问到了,但是在现代REST实践中,这个问题以前的迭代和他们的答案都不是准确或充分的。 这个问题需要一个明确的答案。 问题众所周知,IE(甚至11)cachingAJAX请求,这真的很愚蠢。 大家都明白这一点。 不好理解的是,以前的答案都不够。 SO上这个问题的每一个例子都被标记为充分回答: 1)在每个请求上使用唯一的查询string参数(如unix时间戳),以使每个请求的URL唯一,从而防止caching。 – 要么 – 2)使用POST而不是GET,因为除了在某些特殊情况下,IE不会cachingPOST请求。 – 要么 – 3)使用由服务器传递的“caching控制”头。 国际海事组织在涉及现代REST API实践的许多情况下,这些答案都不是足够的或实际的。 对于POST和GET请求,REST API将具有完全不同的处理程序,具有完全不同的行为,所以POST通常不是GET的适当或正确的替代方法。 同样,许多API都有严格的validation,并且由于许多原因,当提供查询string参数时,会产生500或400个错误,这些错误是他们不希望的。 最后,我们通常会与第三方或其他不灵活的REST API进行接口,因为我们无法控制服务器响应所提供的头文件,并且添加caching控制头文件不在我们的范围之内。 所以,问题是: 在这种情况下,客户端是否真的没有办法阻止IEcachingAJAX GET请求的结果呢?

Rails 3的远程表单:如何指定内容types?

我正在使用Rails 3.2,我有一个窗体,我希望它通过ajax发布,并有控制器返回json。 我正在使用一个form_for helper像这样: = form_for(@object, :remote => true, :format => :json) do |f| …. 我的对象控制器创build方法如下所示: def create respond_to do |format| if @object.save format.html { redirect_to @object } format.json { render json: @object, status: :created, location: @object } else format.html { render action: "new" } format.json { render json: @object.errors, status: :unprocessable_entity } end end […]

如何使用jQuery指定contentType的jsonp POST请求?

我需要用内容types“application / json”做一个jsonp POST请求。 我可以像这样获得POST请求到服务器: jQuery.ajax({ type: 'POST', url: url, data: data, success: success, error: error, async: true, complete: complete, timeout: TIMEOUT, scriptCharset: 'UTF-8', dataType: 'jsonp', jsonp: '_jsonp', }); 但是,只要我添加行: contentType: "application/json"它开始发送它作为一个OPTIONS请求,而不是一个POST。 我如何指定内容types,并仍然提交请求作为POST?

JavaScript的string数组的AJAX Post作为List <String>的JsonResult总是返回空?

我想在JavaScript中build立一个string数组,并得到结果在行动方法的string列表。 以下是我的JavaScript的样子。 我正在使用jQuery 1.4.2。 问题是我的List在action方法中总是显示NULL。 将一个JavaScriptstring数组不正确地映射到C#中的string列表? var test = ['test1', 'test2']; var parms = { var1: 'some string', var2: test }; $.ajax({ type: "POST", url: "/Test/JSONTestAction", async: false, data: parms, dataType: "json", success: function(data) { // success } }); 然后我的JsonResult如下所示: public JsonResult JSONTestAction(string var1, List<string> var2) { // var2 is always NULL — not good […]

jQuery的:: ajaxStop()与jQuery :: ajaxComplete()

哪个在哪个时间使用。 在http://api.jquery.com/上的文档中: 对于ajaxStop()它说: 描述:注册一个处理程序,当所有的Ajax请求都完成时被调用。 这是一个Ajax事件。 而对于ajaxComplete()它说: 描述:注册一个处理程序,当Ajax请求完成时被调用。 这是一个Ajax事件。 从我可以看到ajaxComplete()更灵活,因为: 不pipe什么Ajax请求已经完成,所有ajaxComplete处理程序都被调用。 如果我们必须区分这些请求,我们可以使用传递给处理程序的参数。 每次执行ajaxComplete处理程序时,都会传递事件对象,XMLHttpRequest对象以及创build请求时使用的设置对象。 有人可以解释每个是什么和每个适当的用法。 在我最近build立的应用程序中,当我的ajax调用完成时,我依靠ajaxStop()来触发。 然后我将parsing返回的数据,以获得服务器端操作的结果。 现在我开始怀疑是否应该使用ajaxComplete()来代替或者两者的组合。 感谢赞赏。

如何在rails中asynchronous加载部分页面

在rails / jquery应用程序中创build一个ruby,有一个页面的一部分是耗时生成。 我想改变页面的加载方式,这样大部分的页面就会被加载,并且占位符被保留用于asynchronous加载的耗时部分,并在完成时用ajax / jquery注入到页面中。 我现在拥有的(简体): 应用程序/视图/样品/ show.html.erb: <div id="theResult"> <%= render :partial => 'calculate', :object => @org) %> </div> 部分将使用某些部分@org来生成一些内容(打另一个外部REST服务)。 应用程序/视图/样品/ _calculate.html.erb <% # code to take org and turn it into content %> <!–…html to display results here –> 我意识到这可能是违反适当的MVC架构规则,因为我的部分似乎有太多的逻辑,并希望清理,以及… 所以我想我有两个问题:(1)我如何得到这个工作,以及(2)我应该如何清理这个以遵循好的ruby / rails / mvc实践?

重试一个jQuery的Ajax请求的callback附加到其延期

我试图实现一个系统重试ajax请求失败,暂时的原因。 在我的情况下,它是关于重试401状态代码失败的请求,因为会话已经过期,在调用刷新Web服务,恢复会话之后。 问题是,“成功”的callback不会被称为成功的重试,不像被称为“成功”的ajax选项callback。 我已经在下面做了一个简单的例子: $.ajaxSetup({statusCode: { 404: function() { this.url = '/existent_url'; $.ajax(this); } }}); $.ajax({ url: '/inexistent_url', success: function() { alert('success'); } }) .done(function() { alert('done'); }); 有没有办法做成风格的callback调用成功的重试? 我知道推迟不能被“解决”后,被拒绝,是否有可能防止拒绝? 或者,也许复制原来推迟到一个新的延期? 我没有想法:) 下面是一个更现实的例子,我试图排队所有401拒绝的请求,并在成功调用/ refresh后重试它们。 var refreshRequest = null, waitingRequests = null; var expiredTokenHandler = function(xhr, textStatus, errorThrown) { //only the first rejected request will fire […]